Windows Forms控件通常不是thread-safe,因此.NET Framework為防止多個線程下對控件的存取可能導致控件狀態的不一致,在調試時,CLR-Debugger會拋出一個InvalidOperationException以“建議”程序員程序可能存在的風險。當然你也可以忽略 ...
當winform程序中新開一個線程,是無法改變主線程中窗體控件的屬性的,否則運行時會報錯。 若想在其他線程中控制主線程中的窗體控件,則必須利用BeginInvoke方法。 例如:添加一個名為textbox 的TextBox控件,想將它的Visible設置為false,則執行下面的代碼即可 textbox .BeginInvoke new Action gt textbox .Visible fa ...
2016-12-16 11:43 0 1671 推薦指數:
Windows Forms控件通常不是thread-safe,因此.NET Framework為防止多個線程下對控件的存取可能導致控件狀態的不一致,在調試時,CLR-Debugger會拋出一個InvalidOperationException以“建議”程序員程序可能存在的風險。當然你也可以忽略 ...
窗體是程序與用戶交互的可視界面,窗體也是對象,窗體類定義了生成窗體的模版,實例化一個窗體類就產生了一個窗體。 .NET框架類庫的System.Windows.Forms命名空間中定義的Form類是所有窗體類的基類。 1、常用屬性 屬性:圖標、標題、位置、背景等可在窗體屬性面板設置,也可以代碼 ...
問題出現: 在WinForm 處理多線程訪問主線程的控件時候,就會出現如圖所示的錯誤對話框: 解決方案: 方案一:去掉線程訪問主線程UI控件的安全檢查,使用: 方案二:使用委托,將對主線程的UI控件操作推送了該線程的消息隊列里,使用的方法 ...
我們在做winform應用的時候,大部分情況下都會碰到使用多線程控制界面上控件信息的問題,隨之就極有可能出現這個異常:Cross-thread operation not valid:Control 'textBox1' accessed from a thread other than ...
2.0以后加強了安全機制,不允許在winform中直接跨線程訪問控件的屬性。那么怎么解決這個問題呢,下面提 ...
c#中如何跨線程調用windows窗體控件? 我們在做winform應用的時候,大部分情況下都會碰到使用多線程控制界面上控件信息的問題。然而我們並不能用傳統方法來做這個問題,下面我將詳細的介紹。首先來看傳統方法: 運行這段代碼,我們會看到系統拋出一個異常: 這是 ...
c#中如何跨線程調用windows窗體控件? 我們在做winform應用的時候,大部分情況下都會碰到使用多線程控制界面上控件信息的問題。然而我們並不能用傳統方法來做這個問題,下面我將詳細的介紹。首先來看傳統方法: public ...
方式一(在程序初始化構造函數中加一行代碼): 方式二(推薦): ...