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


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

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

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


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

如题,怎么处理?

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


加好友 发短信
等级:六尾狐 帖子:1438 积分:10617 威望:0 精华:0 注册:2014/8/13 16:19:00
  发帖心情 Post By:2021/6/16 14:08:00 [显示全部帖子]

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

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


加好友 发短信
等级:六尾狐 帖子:1438 积分:10617 威望:0 精华:0 注册:2014/8/13 16:19:00
  发帖心情 Post By:2021/6/16 14:25:00 [显示全部帖子]

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

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


加好友 发短信
等级:六尾狐 帖子:1438 积分:10617 威望:0 精华:0 注册:2014/8/13 16:19:00
  发帖心情 Post By:2021/6/16 15:00:00 [显示全部帖子]

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

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


加好友 发短信
等级:六尾狐 帖子:1438 积分:10617 威望: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()

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






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


加好友 发短信
等级:六尾狐 帖子:1438 积分:10617 威望: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

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


加好友 发短信
等级:六尾狐 帖子:1438 积分:10617 威望:0 精华:0 注册:2014/8/13 16:19:00
  发帖心情 Post By:2021/6/16 15:57: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
    '耗时操作结束     就是我的代码要放在这里执行,中间弹出MSGBOX,咋处理,最后还有一个返回值也不好处理。
    End Sub,"正在处理数据,请等待...")
waitingBox.ShowDialog()

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


加好友 发短信
等级:六尾狐 帖子:1438 积分:10617 威望:0 精华:0 注册:2014/8/13 16:19:00
  发帖心情 Post By:2021/6/16 16:13:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:waiting.foxdb

图片

图片点击可在新窗口打开查看此主题相关图片如下:loading.gif
图片点击可在新窗口打开查看
改了一下,不是很明白,也没实现。

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


加好友 发短信
等级:六尾狐 帖子:1438 积分:10617 威望:0 精华:0 注册:2014/8/13 16:19:00
  发帖心情 Post By:2021/6/16 16:47:00 [显示全部帖子]

Private Sub DoCloseJob()
Try
    If Not processForm.IsDisposed Then
'processForm.Controls("PicBox1").image = nothing     '执行不了,没有image
        processForm.Controls("PicBox1").Dispose   
    End If
Catch Err As Exception
    msgbox(Err.message)
End Try
processForm.Close()
processForm.Dispose()
Basemainform.Activate()
End Sub

上面这个代码已经修改成这样,结果还是不行,报下面的错误。
The process cannot access the file 'D:\program files\Publish\project\Images\saving.gif' because it is being used by another process.



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


加好友 发短信
等级:六尾狐 帖子:1438 积分:10617 威望:0 精华:0 注册:2014/8/13 16:19:00
  发帖心情 Post By:2021/6/16 16:49:00 [显示全部帖子]

真头疼,之前没有这个问题,不知道怎么操作一下就出来这个问题了。
总归得想办法解决啊。不然用户体验太差了。

 回到顶部
总数 14 1 2 下一页