1

我正在将我的 windows 应用程序移动到 windows8 metro 样式应用程序,我不知道如何在 windows8 metrostyle 应用程序中调用方法,我的 windows 应用程序代码是,

    private void appendLog(string msg)
    {
        if (this.InvokeRequired)
            this.Invoke(new MethodInvoker(delegate { this.appendLog(msg); }));
    }

谁能说我!

提前致谢!

4

1 回答 1

2

我不确切知道您要完成什么,但如果是这样您应该尝试

如果在 UI 线程中调用,则直接调用代码,否则将其发送到 UI 线程:

public void AppendLog(string msg)
{
    if (!Dispatcher.HasThreadAccess)
        Dispatcher.RunAsync(CoreDispatcherPriority.Normal, delegate { AppendLog(msg); });
    else
    {
        // DO YOUR UI STUFF
    }
}

如果方法在 UI 线程中调用,则直接调用代码,否则将其推送到调度程序,稍后在 UI 线程中调用...

注意:该方法AppendLog必须在控件中声明。只有这样,该Dispatcher物业才可用...

于 2012-11-01T11:42:56.137 回答