Avatar billede daviddollas Nybegynder
30. september 2006 - 13:20 Der er 2 kommentarer

threading problem

Imports System
Imports System.Threading
Imports System.IO


Public Class Form1
    Private thread1 As Thread

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load


       




    End Sub

 


   
    Private Sub sub_1()

        Dim item As String

        For Each item In Directory.GetFiles("c:\windows")
            Label1.Text = (item)


        Next


    End Sub

 

   


    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        thread1 = New Thread(AddressOf sub_1)
        thread1.Start()
    End Sub
End Class


---
Fejlen;

Handling på tværs af tråde er ugyldig: Objektet 'Label1' blev åbnet fra en anden tråd end den tråd, det blev oprettet i.

---
teknisk:

System.InvalidOperationException was unhandled
  Message="Handling på tværs af tråde er ugyldig: Objektet 'Label1' blev åbnet fra en anden tråd end den tråd, det blev oprettet i."
  Source="System.Windows.Forms"
  StackTrace:
      ved System.Windows.Forms.Control.get_Handle()
      ved System.Windows.Forms.Control.set_WindowText(String value)
      ved System.Windows.Forms.Control.set_Text(String value)
      ved System.Windows.Forms.Label.set_Text(String value)
      ved WindowsApplication4.Form1.sub_1() i C:\Documents and Settings\David Dollas\Dokumenter\Visual Studio 2005\Projects\WindowsApplication4\WindowsApplication4\Form1.vb:linje 28
      ved System.Threading.ThreadHelper.ThreadStart_Context(Object state)
      ved System.Threading.ExecutionContext.runTryCode(Object userData)
      ved System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
      ved System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
      ved System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
      ved System.Threading.ThreadHelper.ThreadStart()

---






Hvad gør jeg ved det ?
Avatar billede arne_v Ekspert
30. september 2006 - 17:22 #1
.NET 2.0 er blevet lidt strict med win forms og tråde

du bliver nok nødt til at bruge en delegate og Invoke
Avatar billede daviddollas Nybegynder
30. september 2006 - 17:47 #2
Jeg har læst mig til

value = False 'Control.CheckForIllegalCrossThreadCalls
Control.CheckForIllegalCrossThreadCalls = valu
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester