Firemonkey 在主UI线程外显示消息对话框窗体

Firemonkey 在主UI线程外显示消息对话框窗体,firemonkey,delphi-10.1-berlin,Firemonkey,Delphi 10.1 Berlin,我想创建一个对话框实用程序unity,它可以从不同的线程异步调用,并在活动窗体上显示我的对话框消息,我确信TDialogServiceAsync是实现这一点的完美方法,但我不能从主UI线程之外调用MessageDialog方法 是否有可能实现我想要的,而不必在我的主窗体中实际创建一个显示对话框的方法 我现在正在为Windows开发,但是如果有一种可以在多个平台上工作的方法,我将不胜感激 提前谢谢 不,所有与ui相关的操作都必须在主ui线程中完成(非常符合逻辑)。你唯一能想到的就是在你的后台线程中

我想创建一个对话框实用程序unity,它可以从不同的线程异步调用,并在活动窗体上显示我的对话框消息,我确信TDialogServiceAsync是实现这一点的完美方法,但我不能从主UI线程之外调用MessageDialog方法

是否有可能实现我想要的,而不必在我的主窗体中实际创建一个显示对话框的方法

我现在正在为Windows开发,但是如果有一种可以在多个平台上工作的方法,我将不胜感激


提前谢谢

不,所有与ui相关的操作都必须在主ui线程中完成(非常符合逻辑)。你唯一能想到的就是在你的后台线程中

TThread.queue(nil,
  procedure
  begin
    showdialog...
  end);

在Windows上,可以在工作线程中调用Win32
MessageBox()
函数。但是基于VCL/FMX对话框的任何东西都不是线程安全的,不应该在主UI线程之外调用。这不完全是我想要的,但是TThread.queue是一个非常有用的方法,它帮助我认识到ideia的问题