C#???????????
???????????? ???????[ 2014/2/8 10:51:49 ] ???????????? ???????
????C#??????????????? EndInvoke ?????????
????????з????????????? BeginInvoke ????????????????Щ???????????? EndInvoke??EndInvoke ???C#???????????????????????????????????????????????????????? EndInvoke?????????????????????????????????
public class AsyncMain {
static void Main(string[] args) {
// The asynchronous method puts the thread id here.
int threadId;
// Create an instance of the test class.
AsyncDemo ad = new AsyncDemo();
// Create the delegate.
AsyncDelegate dlgt = new AsyncDelegate(ad.TestMethod);
// Initiate the asychronous call.
IAsyncResult ar = dlgt.BeginInvoke(3000??
out threadId?? null?? null);
Thread.Sleep(0);
Console.WriteLine("Main thread {0} does some work."??
AppDomain.GetCurrentThreadId());
// Call EndInvoke to Wait for
//the asynchronous call to complete??
// and to retrieve the results.
string ret = dlgt.EndInvoke(out threadId?? ar);
Console.WriteLine("The call executed on thread {0}??
with return value "{1}"."?? threadId?? ret);
}
}
|
????C#??????????????? WaitHandle ?????????
??????? WaitHandle ??????????????????????????????? BeginInvoke ????? IAsyncResult ?? AsyncWaitHandle ????????? WaitHandle??C#?????????????? WaitHandle ??????????????????????? WaitOne ???????
???????????? WaitHandle??????C#??????????????????????? EndInvoke ???????????????????????????
public class AsyncMain {
static void Main(string[] args) {
// The asynchronous method puts the thread id here.
int threadId;
// Create an instance of the test class.
AsyncDemo ad = new AsyncDemo();
// Create the delegate.
AsyncDelegate dlgt = new AsyncDelegate(ad.TestMethod);
// Initiate the asychronous call.
IAsyncResult ar = dlgt.BeginInvoke(3000??
out threadId?? null?? null);
Thread.Sleep(0);
Console.WriteLine("Main thread {0} does some work."??
AppDomain.GetCurrentThreadId());
// Wait for the WaitHandle to become signaled.
ar.AsyncWaitHandle.WaitOne();
// Perform additional processing here.
// Call EndInvoke to retrieve the results.
string ret = dlgt.EndInvoke(out threadId?? ar);
Console.WriteLine("The call executed on thread {0}??
with return value "{1}"."?? threadId?? ret);
}
}
|
??????
???·???
??????????????????
2023/3/23 14:23:39???д?ò??????????
2023/3/22 16:17:39????????????????????Щ??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44???????????????
2021/9/17 15:19:29???·???????·
2021/9/14 15:42:25?????????????
2021/5/28 17:25:47??????APP??????????
2021/5/8 17:01:11