开发者

Threading UI Update (not the invoke required question)

I have a case where I am getting lots of sockets requests coming in. I would like to update the UI 3 seconds after the last socket request has come in. E.g If socket request comes in and the previous one was only 2 seconds ago it should clear the UI Update and start waiting for 3 seconds.

Notes: Each Socket Request comes in on a diff开发者_开发技巧erent thread.


You can update the UI in a System.Timers.Timer (set the timer's SynchronizingObject property to your form) with a three-second interval and reset it whenever you receive a request.

EDIT: On further thought, you should use a System.Threading.Timer, which is less convenient then Timers.Timer but is more lightweight, and is completely thread-safe. In its callback, you'll have to call form.BeginInvoke to switch to the UI thread.

Each time you receive a request, you would run timer.Change(3000, -1).


Use a System.Timers.Timer. Each time a request comes in you reset the timer for 3 seconds. When the timer goes off update the UI. The timer has to be accessed by every thread so you will need to protect it with a mutex.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜