2014-04-28 44 views
1

在前幾天的一次採訪中,我被問到如何'聲明'變量以便跨線程使用它們。幸運的是,面試進行的很順利,我得到了這份工作,但我仍然難以接受這一個......甚至想知道面試官是否可能沒有完全問他真正打算的問題。如何爲多線程使用「聲明」變量?

我想他可能一直在思考什麼是ThreadStatic屬性,或者可能想着如何在AppDomain中使用變量。他提到有兩種方法,但大多數人只是熟悉一種。

我提到了volatile關鍵字(當然,我從來沒有發現過個人的合法用途),我也提到過使用鎖,但他表現得好像還有其他的東西需要聲明一個變量來使用在多個線程中。

任何人有任何想法,他可能一直在談論?

+2

如果你得到了這份工作,問問他他究竟是什麼意思,難道不容易嗎?因爲你被他弄糊塗了? :) –

+1

@Allan是的,我打算剛剛開始第一天。但是......我很不耐煩,現在想知道,再加上我想知道我是否錯過了某些東西,或者在我看到他之前是否弄錯了! :) – BVernon

+0

我想不出除'volatile'之外的任何東西可能是他期望的答案,例如*沒有這樣的事情* –

回答

0

這個問題表明他不知道他在說什麼。如果你想跨線程使用變量,你不必做任何事情。

但也許他想到了Monitor類或讀/寫鎖。

或者也許他在想如何將變量傳遞給線程(參數化的threadstart委託),但是由於匿名方法和lambda表達式不再是問題。