布尔变量在程序集中初始化为false,但在某些时候会变为true。我应该如何在加载程序集的主应用程序中捕获它?
有人说我应该从汇编中激活一个事件,然后在主应用程序中捕获它。这听起来很合理,但是怎么样?或者其他任何方式吗?谢谢!
我在问这个想法,以及一些示例代码。感谢。
修改
就像我说过我有两个独立的实例,一个是在某个时刻会释放一些信号的组件,另一个是试图捕获组件发出的信号的主应用程序。因此,如果有一些代码,我需要知道代码属于哪个实例。
答案 0 :(得分: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 );