首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

来讨论一个异步操作的有关问题

2012-06-01 
来讨论一个异步操作的问题现有一Client类的全局实例g_client,Client有一批Get开头的成员函数,GetXXX使用已

来讨论一个异步操作的问题
现有一Client类的全局实例g_client,Client有一批Get开头的成员函数,GetXXX使用已经建立连接的socket发送请求并接收数据,GetXXX可能在各种窗口操作中调用(不并发),调用GetXXX大多数情况下允许阻塞,小部分不允许阻塞。GetXXX函数可以很复杂,但调用时代码要尽量精简。这种不允许阻塞的应如何设计?

[解决办法]
不就你的標題,異步或程非同步嗎?
[解决办法]
backgroudworker
对同一个对象操作时候要lock
[解决办法]
定义个 delegate ,参数列表和返回类型和 GetXXX 方法一致,再异步调用,
比如:

C# code
int GetXXX(int a){    // ......}delegate int Action(int a);调用:Action ac = GetXXX;ac.BeginInvoke(参数, null, null);
[解决办法]
探讨

av的方法很好。
m_client.BeginConnect(ConnectCompleted, m_client);
但在ConnectCompleted中操作界面时会提示:线程间操作无效,从不是创建控件的线程访问它。

热点排行