我的应用需要不时显示气球通知。我通过执行创建Dispatcher.Invoke()
的{{1}}的{{1}}执行此操作,显示气球通知,然后处理系统任务栏图标。
Action
但是,有时候NotifyIcon
没有运行。记录在它之前停止,public abstract class Foo {
void Bar() {
MainWindow.ShowTrayNotification(ToolTipIcon.Info, "Hello There!", "Balloon text here.");
}
}
public partial class MainWindow : Window {
static Dispatcher dispatcher = System.Windows.Threading.Dispatcher.CurrentDispatcher;
public static void ShowTrayNotification(ToolTipIcon icon, string title, string text) {
dispatcher.Invoke(new Action(() => {
//anything here is not run
UIHelper.ShowTrayNotification(icon, title, text); //static method
}));
//anything here is also not called if dispatcher.Invoke() is not run
}
}
的{{1}}内没有记录。
奇怪的是,当我触发PC关闭时,突然Dispatcher.Invoke
被触发(显示通知)并正常进行(我的预关闭回调被执行)。
我尝试做Debug> Windows>线程,但问题不会发生在调试模式下,所以我找不到导致UI线程阻塞的原因。
造成这种情况的原因是什么?如何解决?
更新
我尝试了以下操作但它们无效:
我将其更改为Invoke
。
我添加了Action
。
更新2
Invoke
答案 0 :(得分:0)
试试这样:
<?php get_header(); ?>
<section id="content" role="main" class="ip-main">
<?php if(have_posts()) : while(have_posts()) : the_post(); ?>
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<?php
/* BEGIN IMAGEPRESS CODE */
/* main image display (required) */
if(function_exists('ip_main'))
ip_main(get_the_ID());
/* related images (optional, can be placed in the sidebar) */
if(function_exists('ip_related'))
ip_related(get_the_ID());
/* END IMAGEPRESS CODE */
?>
</article>
<?php comments_template('', true); ?>
<?php endwhile; endif; ?>
</section>
<?php get_footer(); ?>
另见Dispatcher.CurrentDispatcher vs. Application.Current.Dispatcher