C# 从程序集捕获变量更改

C# 从程序集捕获变量更改,c#,multithreading,events,event-handling,.net-assembly,C#,Multithreading,Events,Event Handling,.net Assembly,布尔变量在程序集中初始化为false,但在某个时刻将变为true。我应该如何在加载程序集的主应用程序中捕获它 有人说我应该从程序集中触发一个事件,然后在主应用程序中捕获它。这听起来很合理,但怎么说呢?或者有其他方法吗?谢谢 我想了解一下这个想法和一些示例代码。谢谢 编辑: 就像我说的,我有两个独立的实例,一个是在某个点释放信号的程序集,另一个实例是试图捕获程序集发出的信号的主应用程序。因此,如果有一些代码,我需要知道代码属于哪个实例。事件可以像这样工作 public partial class

布尔变量在程序集中初始化为false,但在某个时刻将变为true。我应该如何在加载程序集的主应用程序中捕获它

有人说我应该从程序集中触发一个事件,然后在主应用程序中捕获它。这听起来很合理,但怎么说呢?或者有其他方法吗?谢谢

我想了解一下这个想法和一些示例代码。谢谢

编辑:


就像我说的,我有两个独立的实例,一个是在某个点释放信号的程序集,另一个实例是试图捕获程序集发出的信号的主应用程序。因此,如果有一些代码,我需要知道代码属于哪个实例。

事件可以像这样工作

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 );
公共部分类表单1:表单
{
公共表格1()
{
初始化组件();
}
私有无效按钮1\u单击(对象发送者,事件参数e)
{
var logChecker=新测试();
logChecker.ChangedEvent+=x=>MessageBox.Show(“值为”+x);
logChecker.Start();
}
}
内部类测试
{
私人房产;
公共布尔属性
{
获取{return\u property;}
设置
{
_财产=价值;
改变(价值);
}
}
公开作废开始()
{
var线程=新线程(检查日志);
thread.Start();
}
私有无效检查日志()
{
var进程=0;
而(进度<2000年)
{
睡眠(250);
进度+=250;
}
属性=真;
}
公共事件测试,包括供应商变更;
}
内部委托void TestEventHandler(布尔值);

这只是一个将被实际代码取代的示例。这只是一个例子来说明它的工作原理对不起,但是我应该把这些代码放在哪里呢?所有这些代码都在主应用程序中吗?就像我说的,我有两个独立的实例,一个是在某个点释放信号的程序集,另一个实例是试图捕获程序集发出的信号的主应用程序。因此,我需要知道这些代码属于谁。测试类将是单独实例中的代码,该实例将把事件添加到一个实例中,让属性设置程序触发该事件。主应用程序将订阅该事件。这有意义吗?