【发布时间】:2009-11-10 00:11:18
【问题描述】:
我正在创建一个 Appdomain 来运行一段实际上可以是任何东西的代码。我希望我的主机进程能够在所有单词都完成但异步调用/线程阻止我的工作时。我的代码是这样的:
AppDomain ad = AppDomain.CreateDomain(...);
WorkUnit mbro = (WorkUnit)ad.CreateInstanceAndUnwrap(...);
mbro.Run();
工作单元会像这样进行异步调用:
class WorkUnit {
public override void Run()
{
WebClient wb = new WebClient();
wb.DownloadStringCompleted += new DownloadStringCompletedEventHandler(wb_DownloadStringCompleted);
wb.DownloadStringAsync(new Uri("http://localhost/WhoTouches/ThreadSleep.aspx"));
}
void wb_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
Console.WriteLine("job is done now");
}
}
我正在寻找一种方法来知道一切何时完成。我不知道怎么做,但前几天我发现,如果您在 ASPX 页面中使用该 WorkUnit,在异步 Web 客户端调用完成之前,它不会完成请求。重点是,这是可能的,但我不知道如何。
【问题讨论】:
标签: c# multithreading appdomain