相关疑难解决方法(0)

调用线程必须是STA,因为许多UI组件都需要这个

我正在使用http://www.codeproject.com/KB/IP/Facebook_API.aspx

我试图调用使用WPF创建的XAML.但它给了我一个错误:

调用线程必须是STA,因为许多UI组件都需要这个.

我不知道该怎么办.我想这样做:

FacebookApplication.FacebookFriendsList ffl = new FacebookFriendsList();
Run Code Online (Sandbox Code Playgroud)

但它给了我这个错误.

我添加了一个后台工作者:

static BackgroundWorker bw = new BackgroundWorker();

static void Main(string[] args)
{
    bw.DoWork += bw_DoWork;
    bw.RunWorkerAsync("Message to worker");
    Console.ReadLine();
}

static void bw_DoWork(object sender, DoWorkEventArgs e)
{
    // This is called on the worker thread
    FacebookApplication.FacebookFriendsList ffl = new FacebookFriendsList();

    Console.WriteLine(e.Argument);        // Writes "Message to worker"

    // Perform time-consuming task...
}
Run Code Online (Sandbox Code Playgroud)

wpf xaml multithreading facebook

153
推荐指数
5
解决办法
19万
查看次数

调用线程必须是STA,因为许多UI组件在WPF中需要这个

我的情景:

   void Installer1_AfterInstall(object sender, InstallEventArgs e)
    {
        try
        {         

              MainWindow ObjMain = new MainWindow();               
              ObjMain.Show();              
        }
        catch (Exception ex)
        {
            Log.Write(ex);
        }
    }
Run Code Online (Sandbox Code Playgroud)

我收到错误"调用线程必须是STA,因为许多UI组件需要这个"

我所做的?

c# wpf

12
推荐指数
1
解决办法
5万
查看次数

WPF和后台工作者以及调用线程必须是STA

我已经在这个简单的WPF应用程序中实现了Stack Overflow问题实现进度条的解决方案.

MainWindow有自己的viewmodel.在该viewmodel中,我收到用户的输入并使用后台工作程序使用WCF服务.在WCF提供数据后,我正在尝试在新窗口中显示它.这是发生错误的地方:

调用线程必须是STA,因为许多UI组件都需要这个.

我试图将该[STAThread]属性放在MainWindow 代码隐藏以及MainWindowViewModel构造函数内部.两种情况都没有改变.

我错过了什么?

更新 用户在viewmodel中单击命令后调用LoadData方法

private void LoadData(string searchBy)
{
    IsBusy = true;
    BackgroundWorker worker = new BackgroundWorker();
    worker.DoWork += (o, ea) =>
    {
        switch (searchBy)
        {
            // WCF call to load data
        }
    }

    worker.RunWorkerCompleted += (o, ea) =>
    {
       IsBusy = false;
    };

    worker.RunWorkerAsync();
Run Code Online (Sandbox Code Playgroud)

.net c# wpf

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

wpf ×3

c# ×2

.net ×1

facebook ×1

multithreading ×1

xaml ×1