0

我正在尝试在 winforms 应用程序中使用LiveCharts CartesianChart。当我尝试运行应用程序时出现此错误:

PresentationCore.dll 中出现“System.InvalidOperationException”类型的未处理异常

附加信息:调用线程必须是 STA,因为许多 UI 组件都需要这个。

在线包含this.cartesianChart1 = new LiveCharts.WinForms.CartesianChart();在Form.Designer.csInitializeComponent()函数里面。

有什么办法可以解决这个问题?

4

2 回答 2

0

您需要从新线程运行它并将公寓状态设置为 STA:

 TaskCompletionSource<T> tcs = new TaskCompletionSource<T>();
        Thread thread = new Thread(() =>
        {
            try
            {
                tcs.SetResult(func());
            }
            catch (Exception e)
            {
                tcs.SetException(e);
            }
        });
        thread.SetApartmentState(ApartmentState.STA);
        thread.Start();

func()哪里创建和显示图表。

于 2018-12-24T11:47:52.813 回答
-3

你需要[STAThread]在你之前写Main

[STAThread]
static void Main()
{
于 2018-10-22T11:58:22.857 回答