我的程序是这样丛一个DDE服务上取数据,DDE的数据是随时都在变化的,
而且,每当DDE数据变化的时候会触发一个事件,
问题不是在这里,这些都是供应商提供的,没有任何问题的,下面是我说的问题。
数据变化的很快,那么触发的事件就会不停的被调用(每秒种要被调用十几次左右),
这个触发事件里面我写了一个操作(不是很复杂),
所以页面看上去象死机一样,
我应该怎么处理。开一个线程吗?有复杂操作的时候,我们通常开一个线程来执行这个复杂的操作,
但是我的操作不复杂,就是调用的次数太多了,
应该怎么处理,我用的是VS2005 C#
求救。
这个活儿,救差这里了。救命啊。
而且,每当DDE数据变化的时候会触发一个事件,
问题不是在这里,这些都是供应商提供的,没有任何问题的,下面是我说的问题。
数据变化的很快,那么触发的事件就会不停的被调用(每秒种要被调用十几次左右),
这个触发事件里面我写了一个操作(不是很复杂),
所以页面看上去象死机一样,
我应该怎么处理。开一个线程吗?有复杂操作的时候,我们通常开一个线程来执行这个复杂的操作,
但是我的操作不复杂,就是调用的次数太多了,
应该怎么处理,我用的是VS2005 C#
求救。
这个活儿,救差这里了。救命啊。
解决方案 »
- 解析XML问题
- 点击文本框如何为空
- C# Windows服务里:Thread与Timer
- 怎么调用视频采集卡中SDK开发包实现保存视频,抓图,云台等功能,求源码!!!!!急!!!!!有请发送到我邮箱,谢谢[email protected]
- 请问 c#中如何把dataset数据以excel的格式保存到服务器
- ListView Selection事件的问题
- 2个问题50分,在线等!
- vs2012旗舰版+update4已经安装,没发现【平台工具集】,无法编译兼容XP的程序,求解
- 如何解析sql语句
- 如何判断一台机器是否处于上网状态??高手请进
- .Net安装部署问题
- =============要死人了,Arraylist排序==================
我的是Winform程序,
每个事件里面的操作很简单,就是一个小循环对比一下数据,然后取出来,放到一个变量里面。
大家帮忙啊。
能讲的再详细些吗?
或者给点资料也可以。
private struct MessageInfo
{
...
}//Event handle
protected void MessageReceived( ... )
{
MessageInfo mi = new MessageInfo( .. );
arrMessages.Add( mi );//Add it into message queue
}//Sub thread
private void ThreadFun()
{
while( !blnStop )
{
if( arrMessages.Count > 0 )
{
MessageInfo mi = (MessageInfo)arrMessages[0];
arrMessages.RemoveAt( 0 );//remove it from message queue
//handle message using "mi" here
}
Thread.Sleep( 20 );//Sleep a while for other event being handled
}
}//Run sub-threand in form-load event
private Thread thdSub;
thdSub = new Thread( new ThreadStart( ThreadFun ) );
thdSub.Start();