Rumah pembangunan bahagian belakang Tutorial C#.Net .net编程时在线程里使用Form上的控件的问题

.net编程时在线程里使用Form上的控件的问题

Dec 20, 2016 pm 02:41 PM
pengaturcaraan

在写VB.net时,遇到要在线程里改变Form上的ListView控件中的信息,动手做起来才发现并不是那么容易。因为微软的框架并不鼓励在线程里直接访问Form上的控件。因为这样会改变UI进程的正常执行。如果必须这样做,需要在线程中使用Invoke函数或者InvokeBegin函数。下面是一个例子:

Imports System.Threading

Public Class Form1
Delegate Sub AddListItem(ByVal IPString As String, ByVal ScanPort As Integer)
Public myDelegate As AddListItem
Public OpenPortCount As Integer = 0

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
myDelegate = New AddListItem(AddressOf AddListItemMethod)
End Sub

Private Sub Start_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Start_Button.Click
Dim mythread As Thread
mythread = New Thread(New ThreadStart(AddressOf ThreadFunction))
mythread.Start()

End Sub

Private Sub ThreadFunction()
Dim mythread As Thread
mythread = New Thread(New ThreadStart(AddressOf DoScanThread))
mythread.Start()
End Sub 'ThreadFunction

Private Sub DoScanThread()
Dim myThreadClassObject As New ScanThreadClass(Me)
myThreadClassObject.run()
End Sub


Public Sub AddListItemMethod(ByVal IPString As String, ByVal scanport As Integer)
ListView_Result.Items.Add(IPString, OpenPortCount) 'ScanIP.ToString(), 0)
ListView_Result.Items(OpenPortCount).SubItems.Add(scanport.ToString())
OpenPortCount += 1
End Sub 'AddListItemMethod

End Class

Public Class ScanThreadClass
Private myFormControl1 As Form1

Public Sub New(ByVal myForm As Form1)
myFormControl1 = myForm
End Sub 'New


Public Sub run()
myFormControl1.Invoke(myFormControl1.myDelegate, New Object() {"11", 123})
End Sub

End Class

主要注意的就是Invoke的调用和Delegate的定义。


Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Alih keluar nilai pendua daripada tatasusunan PHP menggunakan ungkapan biasa Alih keluar nilai pendua daripada tatasusunan PHP menggunakan ungkapan biasa Apr 26, 2024 pm 04:33 PM

Cara mengalih keluar nilai pendua daripada tatasusunan PHP menggunakan ungkapan biasa: Gunakan ungkapan biasa /(.*)(.+)/i untuk memadankan dan menggantikan pendua. Lelaran melalui elemen tatasusunan dan semak padanan menggunakan preg_match. Jika ia sepadan, langkau nilai jika tidak, tambahkannya pada tatasusunan baharu tanpa nilai pendua.

Untuk apa pengaturcaraan dan apakah kegunaan mempelajarinya? Untuk apa pengaturcaraan dan apakah kegunaan mempelajarinya? Apr 28, 2024 pm 01:34 PM

1. Pengaturcaraan boleh digunakan untuk membangunkan pelbagai perisian dan aplikasi, termasuk tapak web, aplikasi mudah alih, permainan dan alat analisis data. Bidang aplikasinya sangat luas, meliputi hampir semua industri, termasuk penyelidikan saintifik, penjagaan kesihatan, kewangan, pendidikan, hiburan, dll. 2. Pembelajaran pengaturcaraan boleh membantu kita meningkatkan kemahiran menyelesaikan masalah dan kemahiran berfikir logik. Semasa pengaturcaraan, kita perlu menganalisis dan memahami masalah, mencari penyelesaian dan menterjemahkannya ke dalam kod. Cara berfikir ini boleh memupuk kebolehan analitikal dan abstrak kita dan meningkatkan keupayaan kita untuk menyelesaikan masalah praktikal.

Bina aplikasi berasaskan pelayar dengan Golang Bina aplikasi berasaskan pelayar dengan Golang Apr 08, 2024 am 09:24 AM

Bina aplikasi berasaskan pelayar dengan Golang Golang digabungkan dengan JavaScript untuk membina pengalaman bahagian hadapan yang dinamik. Pasang Golang: Lawati https://golang.org/doc/install. Sediakan projek Golang: Cipta fail bernama main.go. Menggunakan GorillaWebToolkit: Tambahkan kod GorillaWebToolkit untuk mengendalikan permintaan HTTP. Cipta templat HTML: Cipta index.html dalam subdirektori templat, yang merupakan templat utama.

Kunci Pengekodan: Membuka Kunci Kuasa Python untuk Pemula Kunci Pengekodan: Membuka Kunci Kuasa Python untuk Pemula Oct 11, 2024 pm 12:17 PM

Python ialah bahasa pengenalan pengaturcaraan yang ideal untuk pemula melalui kemudahan pembelajaran dan ciri yang berkuasa. Asasnya termasuk: Pembolehubah: digunakan untuk menyimpan data (nombor, rentetan, senarai, dll.). Jenis data: Mentakrifkan jenis data dalam pembolehubah (integer, titik terapung, dll.). Operator: digunakan untuk operasi matematik dan perbandingan. Aliran kawalan: Kawal aliran pelaksanaan kod (penyataan bersyarat, gelung).

Penyelesaian Masalah dengan Python: Buka Kunci Penyelesaian Berkuasa sebagai Pengekod Pemula Penyelesaian Masalah dengan Python: Buka Kunci Penyelesaian Berkuasa sebagai Pengekod Pemula Oct 11, 2024 pm 08:58 PM

Pythonmemperkasakan pemula dalam menyelesaikan masalah.Sintaksnya yang mesra pengguna, perpustakaan luas, dan ciri-ciri seperti pembolehubah, pernyataan bersyarat, dan pembangunan kod yang cekap boleh dilonggarkan. Daripada mengurus data untuk mengawal aliran program dan melaksanakan tugasan berulang, Pythonprovid

Koleksi teka-teki pengaturcaraan C++: merangsang pemikiran dan meningkatkan kemahiran pengaturcaraan Koleksi teka-teki pengaturcaraan C++: merangsang pemikiran dan meningkatkan kemahiran pengaturcaraan Jun 01, 2024 pm 10:26 PM

Teka-teki pengaturcaraan C++ meliputi algoritma dan konsep struktur data seperti jujukan Fibonacci, faktorial, jarak Hamming, nilai maksimum dan minimum tatasusunan, dll. Dengan menyelesaikan teka-teki ini, anda boleh menyatukan pengetahuan C++ dan meningkatkan pemahaman algoritma dan kemahiran pengaturcaraan.

Demystifying C: Laluan Yang Jelas dan Mudah untuk Pengaturcara Baharu Demystifying C: Laluan Yang Jelas dan Mudah untuk Pengaturcara Baharu Oct 11, 2024 pm 10:47 PM

C ialah pilihan ideal untuk pemula untuk mempelajari pengaturcaraan sistem Ia mengandungi komponen berikut: fail pengepala, fungsi dan fungsi utama. Program C mudah yang boleh mencetak "HelloWorld" memerlukan fail pengepala yang mengandungi pengisytiharan fungsi input/output standard dan menggunakan fungsi printf dalam fungsi utama untuk mencetak. Program C boleh disusun dan dijalankan dengan menggunakan pengkompil GCC. Selepas anda menguasai asas, anda boleh beralih kepada topik seperti jenis data, fungsi, tatasusunan dan pengendalian fail untuk menjadi pengaturcara C yang mahir.

Dapatkan modul Go dengan cepat dan mudah dengan Go Get Dapatkan modul Go dengan cepat dan mudah dengan Go Get Apr 07, 2024 pm 09:48 PM

Melalui GoGet, anda boleh mendapatkan modul Go dengan cepat dan mudah Langkah-langkahnya adalah seperti berikut: Jalankan dalam terminal: goget[module-path], dengan modul-path ialah laluan modul. GoGet memuat turun modul dan kebergantungannya secara automatik. Lokasi pemasangan ditentukan oleh pembolehubah persekitaran GOPATH.

See all articles