我在Visual Studio 2008中使用vb.net。我已經設置了一個模塊的公共子內部,我試圖讓多個線程用來更新一個富文本框。vb模塊內網絡調用
我通常會使用ME.INVOKEREQUIRED
....但它告訴我「ME」在模塊內無效。
難道有人請在這裏指出正確的方向嗎?
我在Visual Studio 2008中使用vb.net。我已經設置了一個模塊的公共子內部,我試圖讓多個線程用來更新一個富文本框。vb模塊內網絡調用
我通常會使用ME.INVOKEREQUIRED
....但它告訴我「ME」在模塊內無效。
難道有人請在這裏指出正確的方向嗎?
您需要檢查RichTextBox
實例的InvokeRequired
屬性。
沒錯。 VB Module
是一個靜態類,Me
關鍵字對它沒有意義。您需要一個class
的實例才能使用Me
。它也必須來自控制,如果你打算電話InvokeRequired
。您可能需要從模塊創建並打開Form
。
看看這篇關於Accessing Controls from Worker Threads的VB文章開始。
順便說一句,我認爲模塊是一個可怕的想法,不應該在應用程序的入口點代碼之外使用。靜態類很有用,但Module不僅是靜態的,而且是全局的。即其所有成員均可全球訪問。這種情況可能會變得非常棘手......
我們能不能請你看看你的'模塊'代碼?看起來你很奇怪你試圖從一個'Module'訪問UI代碼。 – 2011-04-15 00:16:29
hey paul如果你還在看這個,我沒有這裏的代碼,但即時通訊使用這個函數來更新我的程序在這個richtext框中做的更新,即時通訊使用5 +線程,我希望每個線程都能夠報告進度或錯誤或什麼這個文本框,我希望只是使一個模塊中的共享子來處理所有這一切。 – tye 2011-04-15 18:54:54
我想我看到你在追求什麼。您可能只需要對您希望在模塊中獲得輸出的表單的引用。儘管如此,我還是不會使用模塊,但共享方法是可以的。而且,管理這種事情有很多種方法。這是其中之一。 – 2011-04-15 19:07:58