C#呼叫執行緒必須為 STA,因為許多 UI 元件都需要。
異常: 引發了異常: PresentationCore.dll 中的“System.InvalidOperationException”(“呼叫執行緒必須為 STA,因為許多 UI 元件都需要。”)。引發了異常: PresentationCore.dll 中的“System.InvalidOperationException”(“呼叫執行緒必須為 STA,因為許多 UI 元件都需要。”)
引起異常就下這句:
titleLab.Content = "通話中..." + msg;
引起異常是因為那麼WPF裡面,有個所謂UI執行緒,後臺程式碼不能直接操作UI控制元件,需要控制,就要通過這個Dispatcher。
如下處理:
Dispatcher.BeginInvoke(new Action(delegate
{
titleLab.Content = "通話中..." + msg;
}));
問題解決。
相關推薦
C#呼叫執行緒必須為 STA,因為許多 UI 元件都需要。
異常: 引發了異常: PresentationCore.dll 中的“System.InvalidOperationException”(“呼叫執行緒必須為 STA,因為許多 UI 元件都需要。”)。引發了異常: PresentationCore.dll 中的“System.InvalidOpera
呼叫執行緒必須為 STA 因為許多 UI 元件都需要
WPF中,程式碼中準備控制控制元件內容時,有時會報錯:呼叫執行緒必須為 STA,因為許多 UI 元件都需要我知道,在winform下面,使用多執行緒時,控制元件的值讀取是可以的,但如果要更改,那麼就必須進行一些特別的處理。難道在WPF中,也一樣嗎?首先,WPF中,當報上面那個錯
WPF 之 呼叫執行緒必須為 STA,因為許多 UI 元件都需要
WPF中,程式碼中準備控制控制元件內容時,有時會報錯:“ 呼叫執行緒必須為 STA,因為許多 UI 元件都需要 ”。 如在winform下面,使用多執行緒時,控制元件的值讀取是可以的,但如果要更改,那麼就必須進行一些特別的處理。WPF中也一樣。 首先,WPF中,當報上面那個錯誤時,程式碼可以改成類
C++中 執行緒函式為靜態函式 及 類成員函式作為回撥函式
執行緒函式為靜態函式: 執行緒控制函式和是不是靜態函式沒關係,靜態函式是在構造中分配的地址空間,只有在析構時才釋放也就是全域性的東西,不管執行緒是否執行,靜態函式的地址是不變的,並不在執行緒堆疊中static只是起了一個裝飾的作用,所以二者並沒有必然的關係 執行緒也是一種
C# 多執行緒操作介面時,使用Invoke與BeginInvoke的區別
Invoke方法的引數很簡單,一個委託,一個引數表(可選),而Invoke方法的主要功能就是幫助你在 UI執行緒(即建立控制元件的執行緒)上呼叫委託所指定的方法。Invoke方法首先檢查發出呼叫的執行緒(即當前執行緒)是不是UI執行緒,如果是,直接執行委託指向 的方法
Java:寫2個執行緒,其中一個執行緒列印1-52,另一個執行緒列印A-Z,列印順序應該是12A34B56C...5152Z。
寫2個執行緒,其中一個執行緒列印1-52,另一個執行緒列印A-Z,列印順序應該是12A34B56C...5152Z 多執行緒程式設計:使用Runnable介面例項建立執行緒。使用執行緒等待方法wait(); package com.java瘋狂講義; public
C#中執行緒間操作無效: 從不是建立控制元件 txtBOX 的執行緒訪問它
delegate void 委託名(方法名); void 方法名() { if(txtBox.invokeRequered) { 委託名 d=new 委託名(); txtBox.invoke(d); } else { 具體的執行語句 } } 原來是存在跨執行緒呼叫控制元件的問題
c#關於“執行緒間操作無效: 從不是建立控制元件的執行緒訪問它”的問題
摘自:http://blog.csdn.net/hongkaihua1987/article/details/7439231 http://hi.baidu.com/jcserver/blog/item/b7e8da3e2f6f35f0828b13f1.html 經典
C#中執行緒間操作無效: 從不是建立控制元件 txtBOX 的執行緒訪問它。
delegate void 委託名(方法名); void 方法名() { if(txtBox.invokeRequered) { 委託名 d=new 委託名(); txtBox.invoke(d); } else { 具體的執行語句 } } 原來是存在跨執行緒呼叫控制元件的
c#在可以呼叫 OLE 之前,必須將當前執行緒設定為單執行緒單元(STA)模式------例如,openFileDialog時提示
在可以呼叫 ole 之前,必須將當前執行緒設定為單執行緒單元(sta)模式。請確保您的 main 函式帶有 stathreadattribute 標記。 只有將偵錯程式附加到該程序才會引發此異常。這種情況下要把 openFileDialog放到新的SAT執行緒中執行就行。
C#技巧【呼叫執行緒無法訪問此物件,因為另一個執行緒擁有該物件的問題的解決辦法】【C#讀寫EXCEL原始碼提示“office檢測到此檔案存在一個問題。為幫助保護您的計算機,不能開啟此檔案”的解決】
SYD8801是一款低功耗高效能藍芽低功耗SOC,集成了高效能2.4GHz射頻收發機、32位ARM Cortex-M0處理器、128kB Flash儲存器、以及豐富的數字介面。SYD8801片上集成了Balun無需阻抗匹配網路、高效率DCDC降壓轉換器,適合用於可穿戴、物聯網
c#多執行緒基礎,操作一
原文https://www.cnblogs.com/wangyulong/p/7750346.html C#多執行緒程式設計實戰(一):執行緒基礎 1.1 簡介 為了防止一個應用程式控制CPU而導致其他應用程式和作業系統本身永遠被掛起這一可能情況,作業系統不得不使用某種方式將物理計
C#多執行緒基礎,實現主子執行緒有序輸出
建立控制檯程式 using System; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; namespace AsyncThread { publi
c#多執行緒操作測試(阻塞執行緒,結束任務)
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Te
多執行緒/華為機試(C/C++)
題目描述 問題描述:有4個執行緒和1個公共的字元陣列。執行緒1的功能就是向陣列輸出A,執行緒2的功能就是向字元輸出B,執行緒3的功能就是向陣列輸出C,執行緒4的功能就是向陣列輸出D。要求按順序向陣列賦
C# 多執行緒呼叫靜態方法或者靜態例項中的同一個方法-方法內部的變數是執行緒安全的
C# 多執行緒呼叫靜態方法或者靜態例項中的同一個方法-方法內部的變數是執行緒安全的 using System;using System.Threading;using System.Threading.Tasks;using Sys
C#程式設計 執行緒,任務和同步(2) 開啟執行緒
建立執行緒的幾種方法: 1 非同步委託 建立執行緒的一種簡單方式是定義一個委託,並非同步呼叫它。 委託是方法的型別安全的引用。Delegate類 還支援非同步地呼叫方法。在後臺,Delegate類會建立一個執行任務的執行緒。 using System; using System
C#程式設計 執行緒,任務和同步(1) 基礎認識
執行緒 對於所有需要等待的操作,例如移動檔案,資料庫和網路訪問都需要一定的時間,此時就可以啟動一個新的執行緒,同時完成其他任務。一個程序的多個執行緒可以同時執行在不同的CPU上或多核CPU的不同核心上。 執行緒是程式中獨立的指令流。在VS編輯器中輸入程式碼的時候,系統會分析程式碼,用下劃線標
C#多執行緒呼叫有參的方法
Thread (ParameterizedThreadStart) 初始化 Thread 類的新例項,指定允許物件線上程啟動時傳遞給執行緒的委託。 Thread (ThreadStart) 初始化 Thread 類的新例項。 由 .NET Compact Fra
QThread 與 QObject的關係(QObject可以用於多執行緒,可以傳送訊號呼叫存在於其他執行緒的slot函式,但GUI類不可重入)
QThread 繼承 QObject.。它可以傳送started和finished訊號,也提供了一些slot函式。 QObject.可以用於多執行緒,可以傳送訊號呼叫存在於其他執行緒的slot函式,也可以postevent給其他執行緒中的物件。之所以可以這樣做,是因為每個執行