2014-01-23 71 views
0

一個布爾變量在程序集中被初始化爲false,但在某個點上會變爲true。我應該如何在加載程序集的主應用程序中捕捉到這一點?從程序集中捕獲變量

有人說我應該從程序集中觸發一個事件,然後在主應用程序中捕獲它。這聽起來很合理,但是怎麼樣?或者有其他的方法來做到這一點?謝謝。!

我在問這個想法和一些示例代碼。謝謝。

編輯:

就像我說我有兩個單獨的實例,一個是將在某一點釋放出一些信號的組件,其他實例是一種嘗試捕獲由所述發送關閉信號主要應用部件。所以如果有一些代碼,我需要知道代碼屬於哪個實例。

回答

1

事件可能工作是這樣的

public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void button1_Click(object sender, EventArgs e) 
     { 
      var logChecker = new Test(); 
      logChecker.ChangedEvent += x => MessageBox.Show("Value is " + x); 
      logChecker.Start(); 
     } 
    } 

    internal class Test 
    { 
     private bool _property; 

     public Boolean Property 
     { 
      get { return _property; } 
      set 
      { 
       _property = value; 
       ChangedEvent(value); 
      } 
     } 

     public void Start() 
     { 
      var thread = new Thread(CheckLog); 
      thread.Start(); 
     } 

     private void CheckLog() 
     { 
      var progress = 0; 
      while (progress < 2000) 
      { 
       Thread.Sleep(250); 
       progress += 250; 
      } 
      Property = true; 
     } 

     public event TestEventHandler ChangedEvent; 
    } 

    internal delegate void TestEventHandler(bool value); 
+0

'的Thread.Sleep(250);' :(((((((((((( –

+0

這只是一個將被實際代碼取代的例子,只是一個例子來顯示它的工作 –

+0

我很抱歉,但我應該在哪裏放這些代碼?主要應用程序中的所有這些代碼?就像我說的我有兩個獨立的實例,一個是會在某一點釋放某個信號的程序集,另一個是試圖捕獲程序集發出的信號的主要應用程序。我需要知道這些代碼是屬於誰 –