1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| Imports System.Windows.Forms
Imports System.ComponentModel
Public Module ThreadHelper
Public Sub EditProperty(obj As Object, propertyName As String, value As Object)
If Application.OpenForms.Count > 0 Then
Application.OpenForms(0).BeginInvoke(Sub() TypeDescriptor.GetProperties(obj.GetType)(propertyName).SetValue(obj, value))
Else
TypeDescriptor.GetProperties(obj.GetType)(propertyName).SetValue(obj, value)
End If
End Sub
Public Sub BeginInvokeUiThread(method As Action)
If Application.OpenForms.Count > 0 Then
Application.OpenForms(0).BeginInvoke(method)
Else
method()
End If
End Sub
End Module |