首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在UWP中找到主窗口线程?

在UWP中,可以通过以下步骤找到主窗口线程:

  1. 首先,需要获取当前应用程序的窗口对象。可以使用CoreApplication.MainView属性获取应用程序的主视图。
  2. 通过主视图的CoreWindow属性获取当前窗口的核心窗口对象。
  3. 使用核心窗口对象的Dispatcher属性获取与该窗口关联的调度器对象。
  4. 最后,使用调度器对象的RunAsync方法将代码调度到主窗口线程上执行。

以下是一个示例代码,展示如何在UWP中找到主窗口线程:

代码语言:csharp
复制
using Windows.ApplicationModel.Core;
using Windows.UI.Core;

// 获取主窗口线程
CoreDispatcher dispatcher = CoreApplication.MainView.CoreWindow.Dispatcher;

// 在主窗口线程上执行代码
await dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
{
    // 在此处编写需要在主窗口线程上执行的代码
});

这样,你就可以在UWP应用程序中找到主窗口线程,并在其上执行相应的代码。请注意,上述代码只是一个示例,实际应用中可能需要根据具体情况进行适当的修改和调整。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

dotnet 从入门到放弃的 500 篇文章合集

uwp 如何判断一个对象被移除 win10 uwp何在DataTemplate绑定方法 win10 uwp 如何开始写 uwp 程序 win10 uwp 如何打包Nuget给其他人 win10 uwp...uwp 渲染原理 DirectComposition 渲染 win10 UWP 用Path画图 win10 uwp 禁止编译器优化代码 win10 UWP 等级控件 win10 uwp 线程池 win10...win10 uwp 通知列表 win10 uwp 重启软件 win10 uwp 非ui线程访问 ui win10 uwp 音频 win10 使用 SMB v1 win10 安装Mpi win10 支持默认把触摸提升鼠标事件...WPF 好看的矢量图标 wpf 如何使用 Magick.NET 播放 gif 图片 WPF 如何在 WriteableBitmap 写文字 WPF 如何在应用程序调试启动 WPF 如何在绑定失败异常...,窗口不在最前 WPF 设置纯软件渲染 WPF 设置输入只能英文 WPF 调试 获得追踪输出 WPF 资源冻结 WPF 高性能笔 WPF 鼠标移动到列表上 显示列表图标 wpf-DoEvents WPF

10.4K20

理解 UWP 视图的概念,让 UWP 应用显示多个窗口(多视图)

不过,总有一些特别的情况下我们需要用到不止一个窗口,那么 UWP 中如何使用多窗口呢? ---- 为什么 UWP 需要多窗口?...UWP 视图的概念 在学习如何编写 UWP窗口之前,我们需要了解一些 UWP 视图(View)的概念。...而一个 CoreApplicationView 包含一个窗口和一个线程调度模型,即 CoreWindow 和 CoreDispatcher。 CoreWindow 就是我们所理解的窗口。...CoreDispatcher 是基于消息循环的线程调度模型,正是因为有了消息循环,所以此窗口才能一直显示而不被销毁。...CoreApplication 有一个 MainView 属性,即我们一开始运行 UWP 应用时的那个应用视图。如果我们有不止一个应用视图显示出来,那么这时点击窗口的关闭按钮将不再是关闭,而是隐藏。

1.4K10
  • (22) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序

    ---- 本文分为两个部分: 从零开始创建一个 UWP 项目并完成部署 从零开始编写一个 UWP 应用程序和窗口 本文将从 Main 函数开始,一步步跑起来一个应用程序,显示一个窗口,并在窗口中显示一些内容...庆幸的是,这些方法的含义都能在官方文档中找到(其实就是平时看到的注释): IFrameworkView.Initialize(CoreApplicationView) IFrameworkView.Load...我们需要一个不断处理的消息循环用来阻断主线程的退出,同时又能够不断响应消息。而这样的方法需要写到 Run() 方法里面。...▲ 开启了消息循环之后,应用不会直接退出了 你可以通过阅读 理解 UWP 视图的概念,让 UWP 应用显示多个窗口(多视图) 一文来了解 UWP 应用(CoreApplication)、应用视图(CoreApplicationView...)、窗口(CoreWindow/Window)、线程调度模型(CoreDispatcher)之间的关系。

    1.2K20

    win10 uwp 捕获后台线程异常

    本文告诉大家如何在 UWP 中捕获全局的后台线程异常,在出现后台线程异常时,将会让 UWP 程序闪退,但是在退出之前还是可以执行自己的代码 在 UWP 中,如果需要捕获前台线程,也就是 UI 线程的异常...,可以参见 UWP 中的全局异常处理 的方法 在 App 的构造函数添加 UnhandledException 事件,在事件方法里面通过参数 UnhandledExceptionEventArgs 可以设置当前这个异常是否被处理...,设置为 true 那么就是被处理的异常,此时的应用不会闪退 public App() { this.InitializeComponent()...()); thread.Start(); 执行到创建线程然后在线程抛出异常,将会进入 CurrentDomain_UnhandledException 方法,然后应用程序退出。...通过这个方法可以在软件退出前做日志记录 Application.UnhandledException Event (Windows.UI.Xaml) UWP 中的全局异常处理

    60910

    Visual Studio 调试系列9 调试器提示和技巧

    06 跟踪范围外的对象 (C#、 Visual Basic) 通过调试器窗口监视窗口)可以轻松查看变量。 但是,如果变量超出了监视窗口的范围,你可能会注意到它变成了灰色。...在局部变量窗口(调试 > 窗口 > 局部变量)中找到该变量,右键单击该变量,然后选择创建对象 ID。 ?...此外,还可以在监视和即时窗口中使用伪变量, $ReturnValue。 08 检查可视化工具中的字符串 在使用字符串时,如果能看到完整的、带格式的字符串会很有帮助。...对于几个其他类型调试器窗口中显示的数据集和 DataTable 对象,还可以打开内置的可视化工具。 09 在已处理的异常处中断代码 调试器会在未经处理的异常处中断代码。...11 检查 web 服务和网络资源 (UWP) 的有效负载 在 UWP 应用中,你可以分析使用 Windows.Web.Http API执行的网络操作。

    3.2K10

    WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit)

    最终效果 当将程序跑起来之后,你就能看到 WPF 窗口中的 UWP 控件了。 ?...控件是一个新的 HwndSource,这相当于 UWP 的控件是通过子窗口的形式与 WPF 窗口放在一起的 于是,只能指定一个矩形区域完全属于 UWP,在这个区域 WPF 控件无法与其获得交互或渲染叠加...关于 DPI 适配 为了让 UWP 控件能够在 WPF 窗口中获得正确的 Per-Monitor 的 DPI 适配效果,你需要设置为 PerMonitorV2 的 DPI 感知级别。...关于如何在 WPF 下开启 PerMonitorV2 级别的 DPI 感知可以参见: 支持 Windows 10 最新 PerMonitorV2 特性的 WPF 多屏高 DPI 应用开发 - walterlv...更复杂的 UWP 控件嵌入 如果希望将更多的 WPF 窗口内的 UI 部分交给 UWP 来做,那么就不能只是仅仅初始化一个 Button 就完了。

    4.7K20

    什么是模态窗口?本文带你了解模态窗口的本质

    关于 WPF 框架是如何实现模态窗口的,可以阅读:直击本质:WPF 框架是如何实现模态窗口的 关于如何自己实现一个跨越线程/进程边界的模态窗口,可以阅读:实现 Windows 系统上跨进程/跨线程的模态窗口...禁用窗口 我们需要使用到 BOOL EnableWindow(HWND hWnd, BOOL bEnable); 来启用与禁用某个窗口。...UWP 中的新 API 当然已经都是使用 async/await 来实现模态等待了,不过 WPF/Windows Forms 比较早,只能使用 Dispatcher 线程模型来实现模态等待。...进行 UI 强提醒 由于我们一开始禁用了窗口,所以如果用户试图操作主窗口是不会有效果的。然而如果用户不知道当前显示了一个模态窗口需要操作,那么给出提醒也是必要的。...简单的在 UI 上的提醒是最简单的了,比如: 将界面变暗(UWP 应用,Web 应用喜欢这么做) 将界面变模糊(iOS 应用喜欢这么做) 在模态窗口上增加一个很厚重的阴影(Android 应用喜欢这么做

    1.3K30

    UWP 开发中,需要知道的1000个问题

    UWP中获取Encoding.Default Encoding.GetEncoding(0); 参见:UWP中获取Encoding.Default - yinyue200 - 博客园 UWP 使用...UWP 获取软件版本 UWP 获取自己软件的版本可以和服务器比较,判断当前是否需要升级,那么可以使用下面的代码获得 UWP 应用的版本 Windows.ApplicationModel.Package.Current.Id.Version...UWP 应用获取各类系统、用户信息 (1) - 设备和系统的基本信息、应用包信息、用户数据账户信息和用户账户信息 获取窗口大小 获取窗口可视大小 Windows.UI.ViewManagement.ApplicationView.GetForCurrentView...().VisibleBounds 当前窗口的大小 Window.Current.Bounds 获取当前窗口的其他方法 Window.Current.CoreWindow.Bounds 上面的方法可以获得窗口的...参见 Data binding in depth 协变 逆变 协变 out ,:string->object (子类到父类的转换) 逆变 in ,:object->string (父类到子类的转换)

    1.6K20

    WPF 使用 Microsoft.Toolkit.Wpf.UI.Controls 的 InkCanvas 时加上背景色和按钮方法

    本文来告诉大家如何在 WPF 应用 HOST 了 UWP 的 InkCanvas 控件时,给 InkCanvas 控件设置背景色,加上按钮等业务功能的实现方法 在上一篇博客有告诉大家如何在 WPF 里面使用上...但是在 WPF 里面 HOST 了 UWP 的控件的方式,相当于将 UWP 作为一个窗口嵌入到 WPF 应用里面,这就意味着在 UWP 控件所在的范围,不能使用 WPF 的渲染,在此范围里面的元素都被...让 UWP 的空白应用项目作为 UWP 执行入口,用于提供运行的支持。...InkCanvas 控件添加背景色的方法上,在新建的 UWP 控件项目里面,添加一个自定义的控件, CustomInkControl.xaml 控件 在这个控件里面的 XAML 添加如下代码 <UserControl...InkCanvas.InkPresenter.InputDeviceTypes = CoreInputDeviceTypes.Mouse| CoreInputDeviceTypes.Touch; } 接着

    2.2K20

    UWP 应用中 CoreApplication Application, CoreWindow Window 之间的区别

    而一个 CoreApplicationView 包含一个窗口和一个线程调度模型,即 CoreWindow 和 CoreDispatcher。 ?...▲ UWP 应用视图 在 让 UWP 应用显示多个窗口(多视图) 一文中,由于一个应用对应多个视图,所以可以更容易地理解它们之间的关系。 CoreWindow 就是我们所理解的窗口。...CoreDispatcher 是基于消息循环的线程调度模型,正是因为有了消息循环,所以此窗口才能一直显示而不被销毁。 对外,还是对内?...我们是站在 UWP 普通开发者的角度来思考这个问题的,普通 UWP 开发者是从 MainPage 开始写 UWP 应用的。...关于这些概念的更多应用 我有另外一些文章用到了这些概念: 从零开始创建一个 UWP 程序 让 UWP 应用显示多个窗口(多视图) UWP 扩展/自定义标题栏 ---- 参考资料 Title bar customization

    1.6K20

    UWP 和 WPF 对比

    但是现在有 Avalonia 和 Xamarin WPF,这两个都是可以支持很多平台, mac 和 Linux ,需要说的是,我一个在开发 Xamarin 的小伙伴说,WPF 是一个恐怖的工程,他不觉得很快就可以把...那么 DWM 的作用是什么,实际上从博客可以看到 DWM 实际作用 Windows 组合引擎或合成程序,需要每个窗口把显示的内容给屏外表面或缓冲区,缓冲区是系统给每个顶层窗口分配的,所有的 GDI、D3D...然后 DWM 决定如何显示,是组合窗口还是做特效,最后再把缓存放到显卡。 参见:Why use DirectComposition?...如何在 WPF 使用 dx 是相对比较难的,但是可以使用 SharpDx 和 SharpGL 使用 dx 和 opg。...但是 UWP 的定制虽然像 UWP 但是限制很多,一个就是他的源代码看不到,其他的就是很多功能无法使用, Adorner 和继承属性。

    14.6K20

    .NET周刊【6月第2期 2024-06-09】

    【WPF】Dispatcher 与消息循环 https://www.cnblogs.com/tcjiaan/p/18233254 本文讨论如何在线程上创建并显示WPF窗口,强调UI线程必须是STA模式...例子通过Button点击事件启动新线程创建新窗口,但没有消息循环导致异常。解决方法是使用Dispatcher类创建消息循环,确保线程能处理事件并保持窗口运行。...示例程序让用户输入命令,主线程以“一发即忘”模式调用异步方法,输出带有线程ID的结果。分析了主线程与异步线程的上下文流转,并通过VS调试工具监视线程栈变化。解释了代码阻塞与线程阻塞两种现象。...-5-cons/ 介绍 C# 12 构造函数的三个优点和五个陷阱和微妙之处。.../ 将 Windows Photo 应用从 UWP 迁移到 Windows App SDK 的案例研究。

    11310

    UWP 和 WPF 对比

    但是现在有 Avalonia 和 Xamarin WPF,这两个都是可以支持很多平台, mac 和 Linux ,需要说的是,我一个在开发 Xamarin 的小伙伴说,WPF 是一个恐怖的工程,他不觉得很快就可以把...那么 DWM 的作用是什么,实际上从博客可以看到 DWM 实际作用 Windows 组合引擎或合成程序,需要每个窗口把显示的内容给屏外表面或缓冲区,缓冲区是系统给每个顶层窗口分配的,所有的 GDI、D3D...然后 DWM 决定如何显示,是组合窗口还是做特效,最后再把缓存放到显卡。 参见:Why use DirectComposition?...如何在 WPF 使用 dx 是相对比较难的,但是可以使用 SharpDx 和 SharpGL 使用 dx 和 opg。...但是 UWP 的定制虽然像 UWP 但是限制很多,一个就是他的源代码看不到,其他的就是很多功能无法使用, Adorner 和继承属性。

    5.4K20

    win10 uwp 线程池 为什么需要线程池什么是线程线程池原理应用等待代码完成定时器

    如果大家有开发 WPF 或以前的程序,大概知道线程池不是 UWP 创造的,实际上在很多技术都用到线程池。 为什么需要线程池,他是什么?...如何在 UWP 使用线程池,本文就是来告诉大家这些 为什么需要线程池 在程序中,创建和销毁线程是需要很多资源的,如果只是为了完成很小的代码而创建一个新的线程,创建线程占用的时间在总的运行时间占有比例很大...Invoke(); _action = null; } }).Start(); 上面代码是无法在 UWP...因为做这个线程池需要很多代码,判断设备运行多少个线程合适,分配空闲线程等。好像微软已经弄好了,大家只需要用。...千万不要使用线程池执行比较紧急的任务,因为可能等待很多时间都没运行。 在 UWP 可以通过 ThreadPool 使用线程池。

    1.2K10

    UWP 入门教程2——如何实现自适应用户界面

    系列文章 UWP入门教程1——UWP的前世今生 如上文所说的,布局面板根据可用的屏幕空间,指定界面元素的大小和位置。例如StackPanel 会水平或垂直排列界面元素。...提供自适应可视化状态,可根据窗口大小来调整状态值。...下面示例了,当窗口大于720像素,wideView 状态则被触发,游戏面板重新排列,如图所示: ?... 创建UWP可使用的工具 创建App时,通常会明确目标设备,当需要在设备中预览App,可以使用VS中的Preview toolbar(预览工具箱)查看App,可以模拟不同的设备,PC,...本文列举了以下API 来访问输入: CoreIndependentInputSource:是新增加的API,可将源输入,迁移到主线程或后台线程。 PointerPoint:统一了触摸,鼠标,笔数据。

    3.1K50

    推荐一款很Fluent Design的bilibili UWP客户端 : 哔哩

    UWP已经有好几个Bilibili的客户端,最近又多了一个: 哔哩 - Microsoft Store ? 作者云之幻是一位很擅长设计的UWP开发者,我也从他那里学到了很多设计方面的技巧。...它还是一位Bilibili的Up打PowerPoint和UWP教学。 云之幻的个人空间 - 哔哩哔哩 ( ゜- ゜)つロ 乾杯~ ?...既然是一位设计方面的专家,这个UWP客户端当然有出色的设计。...云之幻自己也说因为他喜欢看动画,所以左侧菜单专门放了“番剧推荐”的菜单项;因为他自己不看直播,所以没有直播模块(其它各种复杂的模块也难得做);因为UWP的生态你懂的,所以连“分享”按钮都是假的。...还有“打开新窗口”这个功能,可以在新的窗口中打开正在播放的视频,这样就可以同时看两个视频,达到双倍的快乐: ?

    2.9K50

    WPF 很少人知道的科技

    这使得你可能已经不知道如何在 C# 代码中创建同样的内容。 比如在代码中创建 DataTemplate,主要会使用到 FrameworkElementFactory 类型。...我们可以继承自 TouchDevice 来模拟触摸,详见: WPF 模拟触摸设备 模拟 UWP 界面 在现有的 Windowing API 下,系统中看起来非常接近系统级的窗口样式可能都是用不同技术模拟实现的...如果要将 WPF 模拟得很像 UWP,可以参考我的这两篇博客: WPF 使用 WindowChrome,在自定义窗口标题栏的同时最大程度保留原生窗口样式(类似 UWP/Chrome) WPF 应用完全模拟...UWP 的标题栏按钮 模拟 Fluent Design 特效 目前 WPF 还不能直接使用 Windows 10 Fluent Design 特效。...在 Windows 10 上为 WPF 窗口添加模糊特效 然而充分利用 Fluent Design 的高性能,需要上 XAML Islands,详见: [Using the UWP XAML hosting

    28820
    领券