在c#中使用线程工作的最佳方法是什么?

Joo*_*ooj 4 .net c# multithreading

在c#中使用线程工作(方法)的最佳方法是什么?

例如:

假设我有一个表单,并希望从db加载数据.

My form controls: 
 - dataGridView (to show data from DB), 
 - label (loading status) and 
 - button (start loading).
Run Code Online (Sandbox Code Playgroud)

当我单击按钮时,我的表单将被冻结,直到任务完成.在任务完成之前,加载状态也不会改变.我认为异步线程会是答案吗?

所以我的问题是:处理这个问题的最佳方法是什么?我知道有很多关于线程的东西,但是它们之间的区别是什么?你如何使线程安全?

你是如何解决这类问题的?

最好的祝福.

Kon*_*man 7

如果使用Windows窗体,则应查看BackrgroundWorker.更一般地说,使用ThreadPool类通常很有用.最后,值得一看的是新的.NET 4的Parallel类.