• 初试WPF代码迁移Core WPF


          最近2年一直能看到 Net Core的介绍,看到支持WPF和Winform引起了兴趣,写简单Demo运行看效果和了解部署。

         现在准备把项目正式迁移到.Net Core, 就先用了一个比较单一的项目试试,编译很大部分很顺利通过,没有什么需要注意,

    也就没有什么印象,一运行不得了各种报错。 也没有去看具体原因,先直接解决让程序运行正常。

    一、BeginInvoke

     
       public static void DoWork(Action action, int millisecond = 500)
            {
                new Action(() =>
                {
                    System.Threading.Thread.Sleep(millisecond);
                    Dispatcher.CurrentDispatcher.BeginInvoke(action);
                }).BeginInvoke(null, null);
            }
    

       以前的写法运行就报错,System.PlatformNotSupportedException:“Operation is not supported on this platform.”
       改后代码: 

     

     public static void DoWork(Action action, int millisecond = 500)
            {
                Task.Run(async () =>
                {
                    await Task.Delay(millisecond);
                    Dispatcher.CurrentDispatcher.Invoke(action);
                });
            }

         Dispatcher.CurrentDispatcher.BeginInvoke(action);不会执行action,

       也需要改为:Dispatcher.CurrentDispatcher.Invoke(action);

     

    二、System.Windows.Threading.DispatcherTimer

             var valueTimer = new System.Windows.Threading.DispatcherTimer();
                valueTimer.Interval = new TimeSpan(0, 0, 0, 0, 100);
                valueTimer.Tick += (obj, e) =>
                {
                    ChangeRecognitionValue(() => { valueTimer.Stop(); });
                };
                valueTimer.Start();

    运行没有效果,直接改为下面:

             var valueTimer = new System.Timers.Timer(1 * 100);
                valueTimer.Elapsed += (obj, e) =>
                {
                    ChangeRecognitionValue(() => { valueTimer.Stop(); });
                };
                valueTimer.Start();

    只是迁移一个控件,预览是否正常,瞬间不想去迁移。 因为.Net5又出来了,到时候直接往上面迁移。

    PS: 准备测试.Net 5 第2个预览版 , 都准备好了 要求VS是16.6或者更新才可以,而我的是16.5.4,不支持…?

  • 相关阅读:
    Java多线程知识-Callable和Future
    C#程序集Assembly学习随笔(增补版,附图)_AX
    C#程序集Assembly学习随笔(第一版)_AX
    【.Net】 C#访问修饰符
    访问修饰符(C# 编程指南)
    Restful API 架构与设计参考原则
    RESTful API 设计指南
    WebService的两种方式SOAP和REST比较
    公众号
    es6(const、let)
  • 原文地址:https://www.cnblogs.com/hubEnergy/p/12773978.html
Copyright © 2020-2023  润新知