【发布时间】:2016-04-26 01:36:41
【问题描述】:
两个问题:
如何将参数传递给
AsyncCallback方法?如何调用
AsyncCallback方法?
这是背景:
我正在使用 .NET Framework 3.5 开发一个旧项目。我想创建一个异步方法来做一些工作而不阻塞当前线程。由于项目是老版本 Async Await 关键字不可用,我打算做所有并行工作,包括一些数据库查询和 AsyncCallback 方法中的 api 调用。我知道 AsyncState 可以用来传达参数。因为我需要多个参数,所以我打算将这些参数包含到一个对象中并将对象设置为 AsyncState,这样我就可以将 AsyncState 转换为要在 AsyncCallback 方法中使用的对象。我没有找到好的方法。我找到了这个link,但我不使用 HttpWebRequest。
public Class ArgumentObject
{
public string A{get;set;}
public string B{get;set;}
...
}
public void CallBack(IAsyncResult result, ArgumentObject arObj)
{
Console.WriteLn(arObj.A);
Console.WriteLn(arObj.B);
}
以下是调用 AsyncCallBack 方法的代码。
var argumentsObj=new ArgumentObject{ A="argument1", B="argument2"..};
AsyncCallback callback = (IAsyncResult result) => CallBack(result, argumentsObj);
// How do I know it is triggered? I set the break point into CallBack method, but it never goes to there.
感谢任何想法或更正。
【问题讨论】:
标签: c# asynchronous