2013-10-16 47 views
0

在我的C#文件,我有一句臺詞:Visual Studio中第一次執行後不運行功能

if (request.Message.Version != Manager.Version) 

在第一次執行時,它確實去Manager()和功能執行的代碼。但是,如果我之後運行該程序,它只是跳過呼叫Manager()並繼續運行後。有趣的是,我發現如果我重新啓動視覺工作室,它會再次運行那個Manager()函數。

的管理器()函數是用於向我的隊列

任何想法被理解分配從配置的AppSettings值。

+0

我猜Manager是一個靜態類? 我有同樣的問題,一旦它沒有從緩存清理。在再次運行之前嘗試「清理構建」。幫助我的情況 – Richard

+0

這裏沒有足夠的細節來準確地幫助你。但是由於你的標籤說你正在做一些緩存,可能某個「版本」數字在緩存(或靜態類)中發生了某種變化。然後,當你重新啓動VS時,緩存被清除並且再次工作。你是否在函數調用中設置了「版本號」? –

+0

@Richard:緩存?清潔生成?不是真的。靜態構造函數在每個應用程序的生命週期中執行一次。這就是應該如此。沒有涉及「緩存」,Clean Build可以修復沒有任何問題。 –

回答

7

我的水晶球說,Manager()是靜態構造函數:

static Manager() 
{ 
    // some code 
} 

靜態構造函數的整點是,他們每運行應用程序生命週期只有一次,所以一切工作如下預期。

延伸閱讀:
http://msdn.microsoft.com/en-us/library/k9x6w0hc.aspx

+0

也可以是單例的構造函數,這與此相同。 – Servy

+0

@丹尼爾你好丹尼爾,你能再次打開你的水晶球,看看你有什麼想法嗎?謝謝感謝:)http://stackoverflow.com/questions/19410227/windows-service-not-started-in-visual-studio – user2751691

相關問題