我有一个案例,我收到很多套接字请求。我想在最后一个套接字请求进入3秒后更新UI。例如,如果套接字请求进来而前一个请求只有2秒它应该清除UI更新并开始等待3秒钟。
注意: 每个套接字请求都在不同的线程中。
答案 0 :(得分:1)
您可以在System.Timers.Timer
(将计时器的SynchronizingObject
属性设置为您的表单)中以三秒的间隔更新UI,并在收到请求时重置它。
编辑:进一步考虑,您应该使用System.Threading.Timer
,这比Timers.Timer
更不方便,但更轻量级,并且完全是线程安全的。在其回调中,您必须调用form.BeginInvoke
切换到UI线程。
每次收到请求时,都会运行timer.Change(3000, -1)
。
答案 1 :(得分:0)
使用System.Timers.Timer
。每次请求进入时,您都会将计时器重置3秒钟。当计时器熄灭时更新UI。每个线程都必须访问计时器,因此您需要使用互斥锁保护它。