110,533
社区成员
发帖
与我相关
我的任务
分享
public void DoIt(string param1, int param2, Action<MyInfo> callback)
{
....
}
这样地,是先注册回调方法的。至于说回调方法callback是不是在调用线程上被调用,那是不确定的。
把异步跟多线程(子线程)等同起来,严格意义上说是错误的。
异步处理,固然“暗示着”其回调方法可能在另一个线程上调用,但是也可能不是。因此你不能见到异步,就说人家有子线程。
System.Threading.ThreadPool.QueueUserWorkItem(
new System.Threading.WaitCallback(一些长期任务));
private void 一些长期任务(Object state)
{
// 插入代码来执行一项艰巨的任务。
int aa = 100;
do
{
System.Threading.Thread.Sleep(1000);
this.Invoke(new Action(() => { resultLabel.Text = (int.Parse(resultLabel.Text) + 1).ToString(); }));
} while (--aa > 0);
}