C#Action和Func异步委托操作
无返回参数的Action:
new Action(() =>
{
// 异步操作
}).BeginInvoke(new AsyncCallback(Callback), null);
private void Callback(IAsyncResult iar)
{
if (iar.IsCompleted)
{
//完成的执行操作
}
}
有返回参数的Func:
new Func<string>(() =>
{
Thread.Sleep(2000); //阻塞两秒
return "测试返回字符串";
}.BeginInvoke((r) =>
{
Func<string> f = (Func<string>)((AsyncResult)r).AsyncDelegate;
string s = f.EndInvoke(r);
MessageBox.Show(s);
},null);