zoukankan      html  css  js  c++  java
  • WPF相关2

    1、关于多线程问题:

      wpf中的多线程的使用:  

        1)使用Backgroundwork类。在主线程中声明一个backgroundwork对象(可以在XAML中,也可以在后台代码中。一般在XAML中声明,这样可以同时声明该对象的进程管理、取消操作等的事件)。

            xmlns:cm="clr-namespace:System.ComponentModel;assembly=System"
    
        <Window.Resources>
            <cm:BackgroundWorker x:Key="backgroundworker" DoWork="BackgroundWorker_DoWork_1" ProgressChanged="BackgroundWorker_ProgressChanged_1" RunWorkerCompleted="BackgroundWorker_RunWorkerCompleted_1" WorkerReportsProgress="True" WorkerSupportsCancellation="True"/>
        </Window.Resources>

        在xaml中声明时,需要相应的命名空间。

        对于多线程使用,一个最重要的问题是:在子线程中调用主线程的控件对象。(这里只说控件对象,我发现好像只有对主线程的控件对象,如果直接在线程中调用才会出错。要是其他普通类对象,在子线程中可以使用,不知道是不是我试验的不够,偶然成了这样)。backgroundwork的ReportProgress(int)和完成函数中都是可以直接调用主线程的控件对象的。所以将backgroundwork的使用分成以下步骤:a/声明backgroundwork。   b/在 DoWork="BackgroundWorker_DoWork_1"对应的函数中调用需要多线程的工作,同时在需要更改主线程控件的地方调用ReportProgress(int)方法,它会调用 ProgressChanged="BackgroundWorker_ProgressChanged_1"所对应的方法。 c/调用backgroundwork的RunWorkerAsync函数。

        2)Dispatcher

    2、数据绑定:

      数据源为具体对象。

  • 相关阅读:
    Codeforces Round #733
    [ZJOI2007] 时态同步(树形dp)
    最大子树和(树形dp)
    P2015 二叉苹果树
    没有上司的舞会(经典树形dp)
    P3884 [JLOI2009]二叉树问题(LCA)
    Bin Packing Problem(线段树 + multiset)
    P4281 [AHOI2008]紧急集合 / 聚会(最近公共祖先)
    P3128 [USACO15DEC]Max Flow P(LCA 树上差分)
    java中Set接口用法
  • 原文地址:https://www.cnblogs.com/z964166725/p/4237989.html
Copyright © 2011-2022 走看看