1樓:匿名使用者
不需要很安全的話
設定form類的checkforillegalcrossthreadcalls屬性為false
這個東西的話在vs2005裡面預設不允許由子執行緒呼叫主線,2003裡面是預設允許的
所以很多事例**都是2003版本,用2005編譯會報錯
先刪掉msdn原文,難找,礙事
補充:如果只是做一個計時器的話,安全性要求不高,可以考慮使用checkforillegalcrossthreadcalls
另外就是用thread.sleep()方法,用執行緒休眠的方式達到計時器的效果
補充:我用的也是2005,只是一般我都在form的建構函式裡面寫,另外這個屬性是form類的,直接用form.checkforillegalcrossthreadcalls=false;
試試,還沒用的話,目前想不到了
只能嘗試用thread.sleep()方法替換timer控制元件吧
2樓:
如果呼叫主執行緒的控制元件,不用timer,那的確太耗時。
參考我的**:
看其中的跨執行緒呼叫委託部分。
3樓:匿名使用者
我建議你用時間控制元件,執行緒太麻煩了。
c多執行緒問題,C 多執行緒問題
你引數是通過指標的方法送進去的?然後結果每個執行緒要讀資料的時候資料已經不是送入時候的資料了嗎 送執行緒引數的時候,為每個執行緒分配一個新的空間來儲存這個 引數 例如你原來是 int a 10 a 20 現在要int a 10 int p new int p a beginthreadex 0,0,...
c中如何讓 主執行緒 等待 子執行緒終止
建立一個主物件,有發出的執行緒數 分配執行緒時確定,並在分配時確定每個執行緒guid 已完成的執行緒數 初始為0 異常的執行緒數 初始為0 以及 事件 待處理的連結串列集合 應含有guid值 等。每個子執行緒完成時都會觸發一個完成事件或異常事件,主物件捕獲這個事件,並比對guid,並且將已完成的執行...
C幾個執行緒同時呼叫方法會出問題嗎
看你的方法與全域性變數或者某一物件有沒有關係,如果有,那麼結果肯定是錯的,如果沒有全域性變數和物件,只是處理返回計算結果的話,那麼沒有問題 如果f 只是個單純c 方法,他是不會搞錯輸入輸出的對應關係的.但你這f 是個裝置操作方法.是否會搞錯就要取決於裝置和裝置驅動程式了,這點你要到設別廠商那去確認....