Foxtable(狐表)用户栏目专家坐堂 → 执行在线升级时,显示图片文件正在使用


  共有3897人关注过本帖树形打印复制链接

主题:执行在线升级时,显示图片文件正在使用

帅哥哟,离线,有人找我吗?
newsun2k
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1499 积分:11175 威望:0 精华:0 注册:2014/8/13 16:19:00
执行在线升级时,显示图片文件正在使用  发帖心情 Post By:2021/6/16 13:57:00 [只看该作者]

如题,怎么处理?

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/6/16 14:04:00 [只看该作者]

升级代码放在什么事件的?

有没有在发布窗口附件添加Splash.jpg文件,如果有,去掉

 回到顶部
帅哥哟,离线,有人找我吗?
newsun2k
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1499 积分:11175 威望:0 精华:0 注册:2014/8/13 16:19:00
  发帖心情 Post By:2021/6/16 14:08:00 [只看该作者]

弹出升级窗口,然后点按钮升级的。没有在附件中加SPLASH

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/6/16 14:13:00 [只看该作者]

升级窗口有没有使用到图片?打开升级窗口前有没有打开其它使用了图片的窗口?

 回到顶部
帅哥哟,离线,有人找我吗?
newsun2k
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1499 积分:11175 威望:0 精华:0 注册:2014/8/13 16:19:00
  发帖心情 Post By:2021/6/16 14:25:00 [只看该作者]

升级窗口没有使用到图片。跟这个有关,升级前如果保存数据,我会弹出下面这个窗口显示动画,然后关闭。
再点升级,就会说那个动画的图片正在使用。

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/6/16 14:36:00 [只看该作者]

这玩意是异步线程,试试下面代码

    Private Sub timer1_Tick(ByVal sender As Object, ByVal e As EventArgs)
        If asyncResult.IsCompleted Then
Me.pictureBox1.Image = nothing
Me.pictureBox1.Dispose
Me.pictureBox1 = nothing
            Me.Close()
        End If
    End Sub

如果不行,建议到afteropenproject事件做升级吧

 回到顶部
帅哥哟,离线,有人找我吗?
newsun2k
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1499 积分:11175 威望:0 精华:0 注册:2014/8/13 16:19:00
  发帖心情 Post By:2021/6/16 15:00:00 [只看该作者]

强烈建议把上面那个功能集成进去

 回到顶部
帅哥哟,离线,有人找我吗?
newsun2k
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1499 积分:11175 威望:0 精华:0 注册:2014/8/13 16:19:00
  发帖心情 Post By:2021/6/16 15:43:00 [只看该作者]

Dim waitingBox As New FrmWaitingBox(Sub(obj, args)
    '耗时操作开始
    For i As Integer = 0 To 5
        System.Threading.Thread.Sleep(1000)
        Output.Show(i)
    Next
    '耗时操作结束
    End Sub,"正在处理数据,请等待...")
waitingBox.ShowDialog()

刚才研究了一下才发现,他整个都改了。
现在调用要用上面的方式。
有点不太好改。
之前用的是以下调用方式:     
打开等待窗口
执行长时间操作      ‘此处代码比较多,而且中间还有提示框,返回值
关闭等待窗口。
求个思路,能改成这样调用不?






 回到顶部
帅哥,在线噢!
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/6/16 15:52:00 [只看该作者]

没看懂,什么东西整个都改了?这样调用是哪样?

 回到顶部
帅哥哟,离线,有人找我吗?
newsun2k
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1499 积分:11175 威望:0 精华:0 注册:2014/8/13 16:19:00
  发帖心情 Post By:2021/6/16 15:56:00 [只看该作者]

之前他是这么来实现的。
我可以调用WaitShow,打开动画窗口,调用WaitClose来关闭动画窗口
这中间,就可以加自己的代码了

Public Sub WaitShow()
Try
    processForm = New System.Windows.Forms.Form
    Dim wfpic As New System.Windows.Forms.PictureBox()
    Dim strImageFile As String

    wfpic.Image = System.Drawing.Image.FromFile(strImageFile)
    wfpic.Dock = System.Windows.Forms.DockStyle.Fill
    wfpic.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom
    processForm.Controls.Add(wfpic)
    processForm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None
    processForm.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
    processForm.TransparencyKey = Color.white
    processForm.backcolor = Color.white
    processForm.OPacity = 1
    processForm.ShowInTaskBar = False
    If Vars("gdSaveFormRate") = 0 Then Vars("gdSaveFormRate") = 4
    wfpic.Width = 1280/Vars("gdSaveFormRate")  '固定大小
    wfpic.Height = 720/Vars("gdSaveFormRate")
    
    processForm.TopMost = True
    Dim upgradeThread As System.Threading.Thread = New System.Threading.Thread(New System.Threading.ThreadStart(AddressOf ShowWaitMess))
    upgradeThread.Start()
Catch ex As Exception
End Try
End Sub

Public Sub WaitClose()
If processForm.InvokeRequired Then
    processForm.Invoke(New Action(AddressOf DoCloseJob))
Else
    DoCloseJob()
End If
End Sub

 回到顶部
总数 24 1 2 3 下一页