uniapp运行到小程序需要很长时间

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了uniapp运行到小程序需要很长时间相关的知识,希望对你有一定的参考价值。

参考技术A 1、首先打开manifestjson,点击“APP启动图配置”选项。
2、其次把启动界面选项的前两项去掉打钩。
3、最后uniapp运行到小程序会变快。

WinForm 应用程序 UI 在长时间运行期间挂起

【中文标题】WinForm 应用程序 UI 在长时间运行期间挂起【英文标题】:WinForm Application UI Hangs during Long-Running Operation 【发布时间】:2010-11-16 01:14:02 【问题描述】:

我有一个 Windows 窗体应用程序 我需要使用一个 for 循环,在 2000 - 3000 左右的调用中进行大量远程调用,

在执行 for 循环时,我失去了对表单和表单控件的控制,因为它变成了一个大进程,有时它显示“无响应”,但如果我等待很长时间它又回来了,我想我需要为此使用一些线程模型,有什么想法,我该如何继续解决这个问题?

【问题讨论】:

Application.DoEvents() 放入循环中。 @i486 - 永远不要打电话给DoEvents()。在代码中引入难以解决的错误是一种邪恶的方式。 【参考方案1】:

您需要在后台线程上执行长时间运行的操作。

有几种方法可以做到这一点。

    您可以将方法调用排队等待在线程池线程上执行(请参阅here):

    ThreadPool.QueueUserWorkItem(new WaitCallback(YourMethod));
    

    在 .NET 4.0 中,您可以使用 TaskFactory:

    Task.Factory.StartNew(() => YourMethod());
    

    在 .NET 4.5 及更高版本中,您可以(并且应该,而不是 TaskFactory.StartNew())使用 Task.Run()

    Task.Run(() => YourMethod());
    

    如果您需要进度更新或完成时的通知等内容,您可以使用BackgroundWorker 来更好地控制该方法。将 BackgroundWorker 控件拖到表单上,并将您的方法附加到 dowork 事件。然后在您想运行您的方法时启动工作程序。您当然可以从代码中手动创建 BackgroundWorker,只需记住完成后需要处理它。

    为您的工作创建一个全新的线程。这是最复杂的并且没有必要,除非您需要对线程进行真正细粒度的控制。如果您想了解这一点,请参阅 Thread 课程上的 MSDN 页面。

请记住,对于任何线程,您无法更新 GUI,或从后台线程更改任何 GUI 控件。如果您想在 GUI 上执行任何操作,则必须使用 Invoke(和 InvokeRequired)在 GUI 线程上触发该方法。见here。

【讨论】:

【参考方案2】:
    private voidForm_Load(object sender, EventArgs e)
    
        MethodInvoker mk = delegate
        
            //your job
        ;
        mk.BeginInvoke(callbackfunction, null);
    

    private void callbackfunction(IAsyncResult res)
    
        // it will be called when your job finishes.
    

使用 MethodInvoker 是最简单的方法。

【讨论】:

【参考方案3】:

显然,您需要使用后台线程。我建议你阅读this free e-book。

【讨论】:

以上是关于uniapp运行到小程序需要很长时间的主要内容,如果未能解决你的问题,请参考以下文章

uniapp运行到小程序模拟器的方法 - uniapp开启微信开发者工具预览支持 - HBuilderX

怎么将apicloud转为uniapp

uniapp 小程序内嵌H5链接返回到小程序页面

五子棋(1)——uniapp 小程序项目搭建

uniapp 总结篇 (小程序)

uniapp 总结篇 (小程序)