我发现.NET事件模型是如此,我经常会在一个线程上引发一个事件,然后在另一个线程上侦听该事件。 我想知道将事件从后台线程打包到我的UI线程的最干净方法是什么。

根据社区的建议,我使用了以下方法:

// earlier in the code
mCoolObject.CoolEvent+= 
           new CoolObjectEventHandler(mCoolObject_CoolEvent);
// then
private void mCoolObject_CoolEvent(object sender, CoolObjectEventArgs args)
{
    if (InvokeRequired)
    {
        CoolObjectEventHandler cb =
            new CoolObjectEventHandler(
                mCoolObject_CoolEvent);
        Invoke(cb, new object[] { sender, args });
        return;
    }
    // do the dirty work of my method here
}

===============>>#1 票数:44

我发现.NET事件模型是如此,我经常会在一个线程上引发一个事件,然后在另一个线程上侦听该事件。 我想知道将事件从后台线程打包到我的UI线程的最干净方法是什么。

根据社区的建议,我使用了以下方法:

// earlier in the code
mCoolObject.CoolEvent+= 
           new CoolObjectEventHandler(mCoolObject_CoolEvent);
// then
private void mCoolObject_CoolEvent(object sender, CoolObjectEventArgs args)
{
    if (InvokeRequired)
    {
        CoolObjectEventHandler cb =
            new CoolObjectEventHandler(
                mCoolObject_CoolEvent);
        Invoke(cb, new object[] { sender, args });
        return;
    }
    // do the dirty work of my method here
}

===============>>#2 票数:28 已采纳

我发现.NET事件模型是如此,我经常会在一个线程上引发一个事件,然后在另一个线程上侦听该事件。 我想知道将事件从后台线程打包到我的UI线程的最干净方法是什么。

根据社区的建议,我使用了以下方法:

// earlier in the code
mCoolObject.CoolEvent+= 
           new CoolObjectEventHandler(mCoolObject_CoolEvent);
// then
private void mCoolObject_CoolEvent(object sender, CoolObjectEventArgs args)
{
    if (InvokeRequired)
    {
        CoolObjectEventHandler cb =
            new CoolObjectEventHandler(
                mCoolObject_CoolEvent);
        Invoke(cb, new object[] { sender, args });
        return;
    }
    // do the dirty work of my method here
}

===============>>#3 票数:11

我发现.NET事件模型是如此,我经常会在一个线程上引发一个事件,然后在另一个线程上侦听该事件。 我想知道将事件从后台线程打包到我的UI线程的最干净方法是什么。

根据社区的建议,我使用了以下方法:

// earlier in the code
mCoolObject.CoolEvent+= 
           new CoolObjectEventHandler(mCoolObject_CoolEvent);
// then
private void mCoolObject_CoolEvent(object sender, CoolObjectEventArgs args)
{
    if (InvokeRequired)
    {
        CoolObjectEventHandler cb =
            new CoolObjectEventHandler(
                mCoolObject_CoolEvent);
        Invoke(cb, new object[] { sender, args });
        return;
    }
    // do the dirty work of my method here
}

===============>>#4 票数:4

我发现.NET事件模型是如此,我经常会在一个线程上引发一个事件,然后在另一个线程上侦听该事件。 我想知道将事件从后台线程打包到我的UI线程的最干净方法是什么。

根据社区的建议,我使用了以下方法:

// earlier in the code
mCoolObject.CoolEvent+= 
           new CoolObjectEventHandler(mCoolObject_CoolEvent);
// then
private void mCoolObject_CoolEvent(object sender, CoolObjectEventArgs args)
{
    if (InvokeRequired)
    {
        CoolObjectEventHandler cb =
            new CoolObjectEventHandler(
                mCoolObject_CoolEvent);
        Invoke(cb, new object[] { sender, args });
        return;
    }
    // do the dirty work of my method here
}

===============>>#5 票数:3

我发现.NET事件模型是如此,我经常会在一个线程上引发一个事件,然后在另一个线程上侦听该事件。 我想知道将事件从后台线程打包到我的UI线程的最干净方法是什么。

根据社区的建议,我使用了以下方法:

// earlier in the code
mCoolObject.CoolEvent+= 
           new CoolObjectEventHandler(mCoolObject_CoolEvent);
// then
private void mCoolObject_CoolEvent(object sender, CoolObjectEventArgs args)
{
    if (InvokeRequired)
    {
        CoolObjectEventHandler cb =
            new CoolObjectEventHandler(
                mCoolObject_CoolEvent);
        Invoke(cb, new object[] { sender, args });
        return;
    }
    // do the dirty work of my method here
}

===============>>#6 票数:3

我发现.NET事件模型是如此,我经常会在一个线程上引发一个事件,然后在另一个线程上侦听该事件。 我想知道将事件从后台线程打包到我的UI线程的最干净方法是什么。

根据社区的建议,我使用了以下方法:

// earlier in the code
mCoolObject.CoolEvent+= 
           new CoolObjectEventHandler(mCoolObject_CoolEvent);
// then
private void mCoolObject_CoolEvent(object sender, CoolObjectEventArgs args)
{
    if (InvokeRequired)
    {
        CoolObjectEventHandler cb =
            new CoolObjectEventHandler(
                mCoolObject_CoolEvent);
        Invoke(cb, new object[] { sender, args });
        return;
    }
    // do the dirty work of my method here
}

===============>>#7 票数:2

我发现.NET事件模型是如此,我经常会在一个线程上引发一个事件,然后在另一个线程上侦听该事件。 我想知道将事件从后台线程打包到我的UI线程的最干净方法是什么。

根据社区的建议,我使用了以下方法:

// earlier in the code
mCoolObject.CoolEvent+= 
           new CoolObjectEventHandler(mCoolObject_CoolEvent);
// then
private void mCoolObject_CoolEvent(object sender, CoolObjectEventArgs args)
{
    if (InvokeRequired)
    {
        CoolObjectEventHandler cb =
            new CoolObjectEventHandler(
                mCoolObject_CoolEvent);
        Invoke(cb, new object[] { sender, args });
        return;
    }
    // do the dirty work of my method here
}

===============>>#8 票数:2

我发现.NET事件模型是如此,我经常会在一个线程上引发一个事件,然后在另一个线程上侦听该事件。 我想知道将事件从后台线程打包到我的UI线程的最干净方法是什么。

根据社区的建议,我使用了以下方法:

// earlier in the code
mCoolObject.CoolEvent+= 
           new CoolObjectEventHandler(mCoolObject_CoolEvent);
// then
private void mCoolObject_CoolEvent(object sender, CoolObjectEventArgs args)
{
    if (InvokeRequired)
    {
        CoolObjectEventHandler cb =
            new CoolObjectEventHandler(
                mCoolObject_CoolEvent);
        Invoke(cb, new object[] { sender, args });
        return;
    }
    // do the dirty work of my method here
}

===============>>#9 票数:0

我发现.NET事件模型是如此,我经常会在一个线程上引发一个事件,然后在另一个线程上侦听该事件。 我想知道将事件从后台线程打包到我的UI线程的最干净方法是什么。

根据社区的建议,我使用了以下方法:

// earlier in the code
mCoolObject.CoolEvent+= 
           new CoolObjectEventHandler(mCoolObject_CoolEvent);
// then
private void mCoolObject_CoolEvent(object sender, CoolObjectEventArgs args)
{
    if (InvokeRequired)
    {
        CoolObjectEventHandler cb =
            new CoolObjectEventHandler(
                mCoolObject_CoolEvent);
        Invoke(cb, new object[] { sender, args });
        return;
    }
    // do the dirty work of my method here
}

===============>>#10 票数:-3

我发现.NET事件模型是如此,我经常会在一个线程上引发一个事件,然后在另一个线程上侦听该事件。 我想知道将事件从后台线程打包到我的UI线程的最干净方法是什么。

根据社区的建议,我使用了以下方法:

// earlier in the code
mCoolObject.CoolEvent+= 
           new CoolObjectEventHandler(mCoolObject_CoolEvent);
// then
private void mCoolObject_CoolEvent(object sender, CoolObjectEventArgs args)
{
    if (InvokeRequired)
    {
        CoolObjectEventHandler cb =
            new CoolObjectEventHandler(
                mCoolObject_CoolEvent);
        Invoke(cb, new object[] { sender, args });
        return;
    }
    // do the dirty work of my method here
}

  ask by Nick translate from so

未解决问题?本站智能推荐: