• 首頁 > 編程學習記錄 > c#多線程簡單實列

    201511月24

    c#多線程簡單實列

    作者:admin 0 Comments 發表評論

    前段時間就研究了下C#的多線程,但因為后面工作忙,就一直沒有管了,昨天花了兩個小時才看懂原來的源碼。。。。

    用我的話說,就是:“三天打魚,三十天曬網?!?/p>

    純陽說:“網都曬爛了!”

    說來慚愧啊,于是乎,今天繼續研究了昨天那段有問題的多線程代碼,原來有問題的代碼如下:

    static void Main(string[] args)
    {

    Thread t = new Thread(Go); ? //注意:這里是實例化一個對象,只實例化了一次而已
    int a=1;

    while (a < 10)
    {

    t.Start(); ? ? //這里對已經實例化的對象多次啟動,就會出問題了。
    a++;

    }
    }

    static void Go()
    {

    Console.WriteLine(“hello”);
    // Console.ReadKey();

    }

    通過今天看別人的代碼,搞了個吧多小時才發現原來是只實例化了一次對象,調用start之前,每個對象都要實列化。修改后的代碼如下:

    static void Main(string[] args)
    {

    int a=1;

    while (a < 10)
    {
    Thread t = new Thread(Go); ? ? //每次都實例化了一個對象,然后才是下一句啟動對象的線程。
    t.Start();
    a++;

    }
    }

    static void Go()
    {

    Console.WriteLine(“hello”);
    // Console.ReadKey();

    }

    上面的才是正確的,并且每個線程的數據是互不影響的。特此記錄!

    補充,多線程需要傳遞參數可以看文章:http://blog.csdn.net/wangzh300/article/details/6969354

    推薦閱讀相關文章:編程學習記錄

    本文地址:http://www.loveband.cn/cxiancheng.html
    版權所有 © 轉載時必須以鏈接形式注明作者和原始出處!

    本文目前尚無任何評論.

    發表評論

    广东11选5平台合法吗