线程是程序中一个单一的顺序控制流程。在单个程序中同时运行多个线程完成不同的工作,称为多线程。
所以,在程序一个线程无法或者无法更好的完成不同工作时,使用跨线程
异步回调
异一个委托,该委托于你需要异步执行的方法的签名一定要一样,
另外 在定义委托时,还可以加上两个可选的参数
意思就是说
你的方法签名 public string TestMethod(int i)
你的委托这样 public delegate string AsyncMethod(int i);
在程序里面,你可以这样用
实例化你的委托:
// ad.TestMethod 假设TestMethod方法包含在一个ad的对象中
AsyncMethod caller = new AsyncMethod(ad.TestMethod);
IAsyncResult Result = caller.BeginInvoke(1,null/*回调*/,new StateObject() /*StateObject是你的对象*/);
这个你调用会返回IAsyncResult 对象 在上面 就是Result
你可以这样获得你的对象
Result.AsyncState 但是必须强制转换。 |