C#学习教程:Application.CurrentConsole应用程序中的“null”当前,但出于多种原因我从不调用Application.Run(也不是一个选项)。结果是NullReferenceException。我基本上是在尝试从控制台应用程序显示同一WPF窗口的多个实例。欢迎提出任何建议(以及C#/F#中的代码示例)!在此先感谢只是提供一个替代解决方案。可以在不打开任何窗口的情况下保持应用程序运行。对我来说感觉不那么“hacky”。?http://msdn.microsoft.com/en-us/library/system.windows.application.shutdownmode.aspxpublicclassAppCode:Application{//入口点方法[STAThread]publicstaticvoidMain(){AppCodeapp=new应用代码();app.ShutdownMode=ShutdownMode.OnExplicitShutdown;应用程序运行();...app.Shutdown();编辑:好的,这有点麻烦。Application.Run会阻塞,所以需要在自己的线程中运行。当它在自己的线程中运行时,主线程和ui线程之间的任何交互最好使用Application.Current.Dispatcher.Invoke完成。这是一些工作代码,假设您有一个继承自Application的类。我正在使用WPF项目模板为您创建的修改后的App.xaml/App.xaml.cs来免费处理ResourceDictionaries。publicclassProgram{//入口点方法[STAThread]publicstaticvoidMain(){varthread=newSystem.Threading.Thread(CreateApp);thread.SetApartmentState(System.Threading.ApartmentState.STA);线程。开始();//这有点劣质,但是线程需要一些时间//才能调用调度程序上的任何内容System.Threading.Thread.Sleep(100);//为了获得用户的输入,显示//对话框并在调度程序上返回结果varresult=(int)Application.Current.Dispatcher.Invoke(newFunc(()=>{varwin=newMainWindow();win.ShowDialog();返回10;}),null);//在不等待结果的情况下向用户显示内容Application.Current.Dispatcher.Invoke(newAction(()=>{varwin=newMainWindow();win.ShowDialog();}),null);System.Console.WriteLine("结果"+结果);System.Console.ReadLine();//这似乎真的没有必要Application.Current.Dispatcher.InvokeShutdown();}privatestaticvoidCreateApp(){Appapp=newApp();app.ShutdownMode=ShutdownMode.OnExplicitShutdown;应用程序运行();这是Application类的预期行为:检查此链接所以基本上你不能在没有打开任何窗口的情况下运行应用程序。保持窗户打开但隐藏。如果我误解了你的问题,以下类似案例可能会有所帮助:以上是C#学习教程的全部内容:Application.Currentconsoleapplication中的“null”,如果对大家有用需要了解更多C#学习教程,希望大家多多关注——本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
