自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 收藏
  • 关注

原创 C# Async方法与Task.Run()的区别

Task.Run强行从线程池抓了一个线程,让它去执行某个任务或方法。当前线程(UI线程)确实也没有阻塞,当时后台占用了一个线程全程陪跑。如果有多个这样的任务,就意味着占用多个线程,内存和线程池很快就会开销完。几百万条数据的汇总计算、图片处理、解压/压缩文件等,则需要使用Task.Run,因为这些操作都是CPU密集型操作,需要占用CPU核心去算,为了不卡UI线程,只能把它丢到后台线程去跑。当执行到await时,这个方法会立即释放当前线程(比如UI线程),并告诉系统:执行完了再叫我吧。此时线程没有阻塞占用。

2026-08-16 16:21:06 220

原创 C# WinForm控件与UI线性安全

上面示例代码可以看到,一般情况下,我们使用async/await异步编程,不需要用到Invoke。await之后的代码在执行完毕后,默认回到UI线程(因为SynchronizationContext被捕获),所有后面我们可以直接操作控件,不需要使用Invoke。①使用了ConfigureAwait(false),意思是执行完成不会自动回到原来线程,这种情况下需要使用Invoke手动回到原来UI线程(一般执行异步方法不用设置,默认是ConfigureAwait(true)执行完自动回到原来主线程)

2026-08-16 15:37:29 169

原创 常用服务器软件的简单介绍

服务器软件 Web服务器 应用服务器 HTTP服务器 Tomcat Nginx

2022-06-19 11:16:34 2927

原创 SQLSERVER将子查询数据合并拼接成一个字段

SQLSERVER 子查询 合并拼接 STUFF FOR XML PATH

2022-06-09 13:14:32 4786

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除