最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#在新建線程中使用Timer無效問題及解決

 更新時(shí)間:2022年08月12日 11:26:41   作者:小葉要學(xué)習(xí)  
這篇文章主要介紹了C#在新建線程中使用Timer無效問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

在新建線程中使用Timer無效

在C#winform窗體設(shè)計(jì)中,我們像重復(fù)運(yùn)行某一功能時(shí),我們想到的就是使用C#的Timer控件,但如果這個(gè)功能執(zhí)行一次需要較長時(shí)間時(shí),就會(huì)占用UI線程,從而會(huì)出現(xiàn)窗體上的控件無法選中或點(diǎn)擊。這個(gè)問題可以通過多線程來解決,但在多線程中,會(huì)出現(xiàn)timer控件無效的問題。

首先,我們?cè)诖绑w設(shè)計(jì)頁面上選擇的timer控件,是屬于System.Windows.Forms.Timer類,這個(gè)類是無法在開辟的新線程中使用的。

若想在thread中使用,我們要用到System.Timers.Timer類的timer定時(shí)器,具體操作如下。

第一步

添加System.Timers.Timer模塊和線程模塊

using System.Timers;
using System.Threading;

第二步

新建一個(gè) System.Timers類的timer定時(shí)器和新線程

// 新建一個(gè)System.Timers類的定時(shí)器
System.Timers.Timer timer = new System.Timers.Timer();
timer.Interval = 100; // 定時(shí)器的運(yùn)行周期(ms)
timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed); // 添加調(diào)用函數(shù)
 
void timer2_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
    // 定時(shí)器執(zhí)行的語句
}
 
Thread t1 = new Thread(new ThreadStart(t1_Run)); // 實(shí)例化新線程
t1.Start();
 
private void t1_Run()
{
    timer2.Enabled = true; // 定時(shí)器開啟
}

C# Timer無法停止的解決

在用Winform做一個(gè)網(wǎng)絡(luò)爬蟲的時(shí)候發(fā)現(xiàn)C#里頭Timer調(diào)用Stop()函數(shù)卻無停止的問題。

在網(wǎng)上找,似乎說問題與線程池有關(guān)。我對(duì)線程的使用很不熟練,所以也看不明白網(wǎng)上調(diào)用線程的方法。

還好在一篇帖子的回復(fù)里找到了一個(gè)簡單的解決方法,就是在Elapse調(diào)用的方法里一開始就調(diào)用timer.stop(),結(jié)尾再調(diào)用一次timer.start();

問題果然解決了

public void main(){
? ? myTimer = new System.Timer.Timer(LOOP_INTERVAL);
? ? myTimer.Elapsed += new System.Timers.ElapsedEventHandler(myElapse);
? ? myTimer.Enabled = true; //myTimer啟動(dòng)
}
public void myElapse(object sender, System.Timers.ElapsedEventArgs e){
? ? myTimer.Stop();
? ? ...
? ? myTimer.Start();
}

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。 

相關(guān)文章

最新評(píng)論

白河县| 牙克石市| 六盘水市| 义乌市| 晋城| 昌乐县| 云梦县| 钦州市| 邮箱| 河东区| 临漳县| 石台县| 湖南省| 定远县| 宜城市| 蓬安县| 甘孜| 赤峰市| 福海县| 任丘市| 亚东县| 南华县| 遵义县| 堆龙德庆县| 潮州市| 北安市| 明水县| 衡南县| 来安县| 通渭县| 勐海县| 启东市| 旬邑县| 浦东新区| 周至县| 辽源市| 枣阳市| 阿克陶县| 五大连池市| 祁连县| 晋江市|