zoukankan      html  css  js  c++  java
  • 在线程中建立Form遇到的问题

    一个项目由很多Form组成,默认情况下在启动程序时,这些form都会被建立,这会黑屏很长时间,一种方法是用到Form时再建立,结果又发现如果Form设计复杂,建立的过程也会超过1秒以上,于是想到用线程实现。

    在主窗口的oncreate事件中实现:
    TThread.CreateAnonymousThread(
    procedure()
    begin
    form1:=TForm1.Create(Application);
    end).Start;
    win32下正常,android下不正常,有时候能正常显示主窗口,有时候黑屏卡死,不显示主窗口。

    环境:xe6,xe7

    窗口是属于线程的,消息循环也是依附于线程的.除非你的线程中有消息循环的处理.
    不论Windows的MessageLoop还是Android的主线程的Handler/Message都是基于消息的.界面和线程都要分开处理的.

    Google Android官方已经明白说过,
    Android UI 并不是线程安全的,
    所有UI的操作,都必须在 主UI线程中进行,
    不能用在Windows编程的观念,
    拿来套用在Android编程上~

    TThread.CreateAnonymousThread(
    procedure()
    begin

    sleep(1000);//加上这句就稳定下来了!

    form1:=TForm1.Create(Application);
    end).Start;


    楼上试试
    TThread.CreateAnonymousThread(
    procedure()
    begin

    sleep(0);//加上这句看看效果是不是一样?

    form1:=TForm1.Create(Application);
    end).Start;
    --------------------------


    http://bbs.2ccc.com/topic.asp?topicid=465042

  • 相关阅读:
    python-登录小游戏
    easyclick 学习
    PYQT5 学习
    Pycharm之QT配置
    标贴打印机的基本使用
    开发遇到的问题及其解决
    Datatable 数据源
    JIRA操作之JQL
    类视图函数 VIEW
    前端基础
  • 原文地址:https://www.cnblogs.com/findumars/p/5691890.html
Copyright © 2011-2022 走看看