【发布时间】:2015-08-14 17:52:51
【问题描述】:
我无法理解异步回调的工作原理。我在一个单独的类中有一个方法(调用这个类“Foo”),它需要我传入一个 asynccallback 方法和一个对象。
这个方法应该是下载一些内容作为字符串。
public void sampleFunction(AsyncCallback callback, object x)
{
//download some content as a string
}
然后我有我的 asynccallback 方法和我调用上述方法的方法:
public static void test(IAsyncResult result)
{
Console.WriteLine("Reached");
//Is result the string that should have been downloaded? Confused
Console.WriteLine(result);
}
public static void sampleFunction2()
{
Foo z;
object t = "hello";
AsyncCallback callback = new AsyncCallback(test);
z.sampleFunction(callback, t);
}
调用 sampleFunction2 后,控制台上没有任何内容。我在做什么/理解错了?
【问题讨论】:
-
result的类型是什么? -
@SKLAK 如果您不确定异步是如何工作的,那么请进行谷歌搜索并阅读此处发布的答案以获取解释stackoverflow.com/questions/24953808/…
-
@MrLister 是一个只包含一个取消异步操作的方法的接口。
-
如果您在第一次调用
Console.WriteLine时设置断点,调试器会告诉您什么?关于IAsynchResult,文档告诉你什么? -
@KenWhite 它甚至没有到达断点,所以没有到达方法
标签: c# asynchronous