WPF应用程序错误-调用线程无法访问对象 [英] WPF Application Error - Calling thread can't access object

查看:49
本文介绍了WPF应用程序错误-调用线程无法访问对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我第一次尝试WPF应用程序.它基于Dan Mabbutt的一篇文章.这是Windows1.xaml.vb文件中的代码.

This is my first attempt at a WPF application.  It is based on an article from Dan Mabbutt.  Here is the code from the Windows1.xaml.vb file.

<身体>
导入 System.Timers
Window1
朋友 WithEvents myTimer As 新建 私有 Button1_Click( ByVal 发件人 As 系统. 对象 ByVal 句柄 Button1.单击
myTimer.Interval = 100
myTimer.Start()
标签1 "你好来自" & vbCrLf& " GrandpaB; Label1.FontSize = 24
标签1.Opacity = 0.6
结束
私有 myTimer_Elapsed( ByVal 发件人 e System.Timers.ElapsedEventArgs) myTimer.已用
Label1.Opacity + = 0.01'' ****此处发生错误****
如果 Label1.Opacity> 1 然后 Label1.Opacity == 0
结束 Sub
结束
Imports System.Timers  
 
Class Window1  
    Friend WithEvents myTimer As New Timer  
 
    Private Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.Windows.RoutedEventArgs) Handles Button1.Click  
        myTimer.Interval = 100  
        myTimer.Start()  
        Label1.Content = "Hello From" & vbCrLf & "GrandpaB" 
        Label1.FontSize = 24  
        Label1.Opacity = 0.6  
    End Sub 
 
    Private Sub myTimer_Elapsed(ByVal sender As ObjectByVal e As System.Timers.ElapsedEventArgs) Handles myTimer.Elapsed  
        Label1.Opacity += 0.01  '**** Error Occurs here ****
        If Label1.Opacity > 1 Then Label1.Opacity = 0  
    End Sub 
End Class 

推荐答案

您可以尝试以下方法:

You could try something like this:

<身体>
Dispatcher_mainDispatcher = Dispatcher.CurrentDispatcher;
私有 void myTimer_Elapsed( object 发送者, ElapsedEventArgsargs){
_mainDispatcher.BeginInvoke(DispatcherPriority.Normal, new 委托 如果 (Label1.Opacity> 1)
标签1不透明度= 0;
)));
}
Dispatcher _mainDispatcher = Dispatcher.CurrentDispatcher;  
 
private void myTimer_Elapsed(object sender, ElapsedEventArgs args) {  
    _mainDispatcher.BeginInvoke(DispatcherPriority.Normal, new ThreadStart(delegate () {  
        Label1.Opacity += 0.01;  
        if (Label1.Opacity > 1)  
            Label1.Opacity = 0;  
    }));  


这篇关于WPF应用程序错误-调用线程无法访问对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆