我來自VB 6,並且是VB.NET的新手。 我在寫一個Windows Phone 8應用程序。有一個網格,我有幾個textBlocks,我想動態顯示來自文件流(包含掃描數據)的數據。更改WP8文本塊時出現「無效的跨線程訪問」
當WP8頁面打開時,它會自動將數據加載到textBlocks中。這工作。在我從文件中加載數據之前,我想「重置」所有的textBlock並隱藏它們。爲此,我想用一個過程,它本質上是做下面的每一個文字塊:
tbl1.Text = ""
tbl1.Visibility = System.Windows.Visibility.Collapsed
這個工作原理完全一次:在頁面加載時。該過程不會產生錯誤。
類型的異常「系統:
現在,當我以後再調用該方法,當我想要刷新頁面上顯示的數據,我得到上面顯示上的第一行代碼下面的錯誤.UnauthorizedAccessException'發生在System.Windows.ni.dll中,但未在用戶代碼中處理 附加信息:無效的跨線程訪問。
我現在有點迷路了。在VB6中,我可以用我的UI元素做任何我想做的事情。我認爲我在這裏犯了一些新手錯誤?
我在某處讀了一些有關Dispatcher的東西。但是,僅僅將textBlock中的值更改爲我看起來過於複雜。有沒有簡單的方法?
你用什麼方法改變這個值?它是異步運行的嗎?你能用這種方法展示更多的代碼嗎? – Romasz
第一次在頁面的構造函數中調用它。但不直接。它處於非異步子過程中。 第二次它在掃描器接收到數據後的事件中調用:Private Sub oBCScanner_DataReceived(sender As Object,e As BarcodeScannerDataReceivedEventArgs) – Verun
正如我第一次理解它(當頁面加載時)。那麼你第二次調用它在哪裏?一些內置方法也可以異步運行。 – Romasz