积极答复者
[STAThread()]为什么不被识别

问题
-
今天在学习只用代码生成WPF的方法。书上给出了一种启动程序的方法
C#
using System.Windows; using System.Windows.Controls; using System.Windows.Markup;
public class Program : Application { [STAThread()]//这个语句不被编译器识别 static void Main() { Program app = new Program(); app.MainWindow = new Window1();//Window1是已经设计好的类 app.MainWindow.ShowDialog(); } }
我把[STAThread()]删除掉后,程序抛出异常“调用线程必须为 STA,因为许多 UI 组件都需要。”
请问这是怎么回事,该如何解决?
- 已编辑 nimingzhe2008 2012年2月2日 5:16
答案
-
用下: [System.STAThreadAttribute()] 我这里有个命令行启动WPF程序的例子, 里面有和你类似的代码: https://skydrive.live.com/embed?cid=51B2FDD068799D15&resid=51B2FDD068799D15%21538&authkey=AArpVpDXs-vddpg
你的问题在于没有 using System; 在一开始;要么你就写: [System.STAThread()]
Bob Bao [MSFT]
MSDN Community Support | Feedback to us
- 已编辑 Jie BaoModerator 2012年2月2日 9:41
- 已标记为答案 nimingzhe2008 2012年2月3日 3:11
全部回复
-
用下: [System.STAThreadAttribute()] 我这里有个命令行启动WPF程序的例子, 里面有和你类似的代码: https://skydrive.live.com/embed?cid=51B2FDD068799D15&resid=51B2FDD068799D15%21538&authkey=AArpVpDXs-vddpg
你的问题在于没有 using System; 在一开始;要么你就写: [System.STAThread()]
Bob Bao [MSFT]
MSDN Community Support | Feedback to us
- 已编辑 Jie BaoModerator 2012年2月2日 9:41
- 已标记为答案 nimingzhe2008 2012年2月3日 3:11