1樓:
看你的方法與全域性變數或者某一物件有沒有關係, 如果有, 那麼結果肯定是錯的, 如果沒有全域性變數和物件, 只是處理返回計算結果的話, 那麼沒有問題
2樓:匿名使用者
如果f()只是個單純c#方法,他是不會搞錯輸入輸出的對應關係的.
但你這f()是個裝置操作方法.是否會搞錯就要取決於裝置和裝置驅動程式了,這點你要到設別廠商那去確認.
如果裝置沒用分辨輸入輸出對的能力,那麼只加鎖就行了
3樓:匿名使用者
不會,電腦都是用時序來完成資料的處理,但如果f()方法處理時間長了,會引起執行緒的卡頓!
4樓:虎用
那要看你這個方法裡面有沒有公共靜態變數的相關修改了。
如果沒有修改公共靜態變數,就不會。
5樓:匿名使用者
如果f是一個向終端傳送命令的方法,那麼這裡是否會出錯就和儀器有著非常大的關聯了
這裡的核心問題在於a執行緒先發起請求,並開始等待f()給予返回,儀器此時處理a執行緒發來的請求,a執行緒處於等待階段,那麼如果b執行緒在這個時候進行請求,b執行緒傳送給f()的請求是否會影響a執行緒的結果。
這在於儀器是否支援多請求併發
如果支援,那麼可以使用這樣的非同步請求方式
如果不支援,那麼需要做執行緒同步
j**a如何開啟兩個執行緒後同時呼叫一個類的方法
6樓:匿名使用者
呼叫一個類的方法,不是可以直接呼叫嗎?只是要注意這個方法是否修改了一個兩個執行緒都要用到的變數。
在c#中如何使用多執行緒,每隔幾秒去執行一個方法?
7樓:匿名使用者
////// 簡單的 執行緒執行的 方法.
////// 這個方法是 靜態的
///public static void threadfunc()", count);}}
////// 啟動執行緒的**.
///public static void startthread()全部的例子**看下面的帖子
8樓:太陽之子
現在vs2008一般不用執行緒,大家都使用委託1、委託程式
private void writelog(string content)
2、委託手柄
delegate void writeloghandle(string content);
3、委託使用方法
this.invoke(new writeloghandle(writelog),new object);
然後放一個時鐘控制元件,迴圈去執行方法(3)就行了
9樓:
引入名稱空間
using system.threading;
然後使用thread物件呼叫方法
例如do
while(條件)
10樓:
窗體有timer,執行緒也有自己timer類。
你使用執行緒的timer類就可以實現了。
c#中多個執行緒呼叫同一個方法,方法的變數是公有變數,怎樣進行方法的呼叫使各個執行緒互不影響。
11樓:匿名使用者
最簡單的方法,把這個變數加鎖,或者把函式方法加鎖,使其同一時間只能被一個執行緒呼叫。
但這樣犧牲了效率,所以首先你還是得思考以下問題:
1.這個變數值會被其他執行緒改變嗎?
如果1的回答是否定的,那麼執行緒之間應該不會受影響如果是肯定的,思考問題:
2.一定要在其他執行緒中改變這個變數嗎?
如果是否定的,考慮使用臨時變數或者區域性變數代替原變數如果肯定的,還是考慮加鎖吧
暫時想到這麼多,歡迎補充:)
12樓:匿名使用者
公有變數(我的理解是全域性變數)一定會造成影響,如果不想影響,把公有變數改為方法中的區域性變數
13樓:
在方法中進行變數訪問時加入鎖。簡單的使用lock,或是根據實際情況使用讀寫鎖。
然後建議設定變數(應該是欄位吧)為私有。外部需要訪問的話使用只讀屬性進行訪問。
j**a 兩個執行緒同時呼叫一個類裡的同一個方法,這樣會出現什麼情況?有沒有問題?
c#操作多執行緒的問題,有5個執行緒同時執行,如何判斷5個執行緒均已執行完畢,最好2.0的,別的也將就!
14樓:
這個需求有很多方法可以實現,給你一個最簡單的方法的例子:
using system;
using system.threading;
public class threaddemoconsole.writeline("i'm finished all works on my hand. you can do something else.
");// some other works.
}static void work()
}輸出:
hello, i'm going to do some time-consuming work...
working...
working...
working...
working...
working...
i'm finished all works on my hand. you can do something else.
你還可以通過訊號量等機制實現執行緒同步, 具體可以自己google
c中如何跨執行緒呼叫windows控制元件
在輔助執行緒呼叫 在建立輔助執行緒時可將此方法通過delegate傳到輔助執行緒中 下面的方法invokecontrol 寫在主執行緒中 windows控制元件 private void invokecontrol private void changetext public delegate vo...
c 多執行緒加鎖的問題,C 執行緒中方法可以加鎖嗎?
lock是鎖住執行緒吧,用protect和final不給呼叫算不。恩,可以的。先定義lock物件。object objlock new object 在lock塊中呼叫一個函式。lock objlock 可以啊 放在lock塊裡。還有一種執行緒同步一系統的方法。比如用monitor mutex一系統...
如何在c中webservice呼叫方法總結
一騎當後 一 webservice在cs後臺程式中的呼叫 a 通過名稱空間和類名直接呼叫 示例 webservice ws new webservice string s ws.helloworld b 通過新增web引用的方式呼叫,首先新增web引用,通過url指向webservice,指定web...