是这样的,我的form load的时候需要加载一些需要的信息,所以要call 2个异步方法,我也不知道什么时候2个都完成,也不知道哪个先完成。但是我需要2个都完成 才能继续。。 我需要一个方法,不需要自己flag,似乎.net framework已经提供的class可以用,听说比如semaphore autoresetevent mutex等,还没认真去读这些,现在需要一个一般解决这个问题的最优方法。望达人提供思路,若code就更好了。
小弟感谢了。
小弟感谢了。
解决方案 »
- ContextMenuStrip的问题
- C# 生成xml文件问题
- 关于DataGirdView保存和删除的问题~大侠们帮帮小弟吧~急啊
- 来看下这个简单问题
- (在线等待)高手的请帮个忙 C#重用事件?
- 求做不规则窗体的方法?
- 传输文件流时 出现这样的错误:基础连接已经关闭: 连接被意外关闭。
- C#和VB.NET哪个更快?
- 【高分在线等】请教一个json转为实体类的问题
- 上传了三个基于web用C#开发的Crystal Report设计案例,大家可以到下载区download来学习
- Xp安装全角补丁NDP20-KB925488-X86.msp时提示 无法安装
- c#怎样在不知道c++DLL可能返回的数组长度的情况下获取数组中每个成员的值
谢谢sp1234,想请问你,.net提供2种异步模式,一个是基于iAsyncResult接口的,还有是基于事件event based Asynchronous pattern.我现在call的是基于时间的,也就是 xxxAsync() 这种,当callback回来时候,xxxCompleted(....) 这个方法是UI Thread的是吗?我现在有个问题,不知道是不是线程引起的。当我一个Form尝试call2个这种异步的方法的时候,似乎callback不回来。望sp1234兄指点迷津。谢了!
ManualResetEvent mre2;Public Form
{
......
mre1 = new ManualResetEvent(false);
mre2 = new ManualResetEvent(false);
}Form_Load(..................)
{
CallAsync1();
CallAsync2();if (!mre1.WaitHandle(3000))
{
}
if (!mre2.WaitHandle(3000))
{
}
}Async1(.........)
{
.....
.....
mre1.Set();
}Async2(.........)
{
.....
.....
mre2.Set();
}