小编use*_*164的帖子

C#定时器是否在单独的线程上经过?

System.Timers.Timer是否在与创建它的线程不同的线程上经过?

让我们说我有一个定时器,每5秒触发一次.当计时器触发时,在已用方法中,某些对象被修改.让我们说修改这个对象需要很长时间,比如10秒.在这种情况下,我是否可能遇到线程冲突?

c# multithreading timer

86
推荐指数
5
解决办法
10万
查看次数

C#,WPF,需要时自动调用Dispatcher.Invoke?

我有一个嵌入了Geospace地图的程序.地图的事件处理在单独的线程上处理,以使地图保持响应(例如,单击地图时触发的事件).

我遇到的问题是当地图触发一个事件时,我的程序需要更新它的gui中的一些东西,并且还回调到地图以处理在地图上放置图片.

我尝试在this.Dispatcher.Invoke中包装整个事件处理程序方法,这使我回到主UI线程.这对于更新我的GUI非常有用,但是当我回调到地图时,我仍然在UI线程上,这可能会导致地图中出现一些问题.

基本上,为了使这项工作,每次我想要更改我的gui上的控件时,我将不得不运行dispatcher.invoke.有没有办法我可以自动执行此操作而不在dispatcher.invoke中包装每个调用?我希望这一切都有道理.

下面是我正在谈论的事件的一些示例代码.

    private void Map_OnMapClicked(object sender, MapClickedEventArgs e)
    {
        this.Dispatcher.Invoke(DispatcherPriority.Normal, (Action)(() =>
        {
            // Do something to update my gui
        }));

        Map.DoSomethingInTheMap();

        this.Dispatcher.Invoke(DispatcherPriority.Normal, (Action)(() =>
        {
            // Do something to update my gui
        }));


        //etc etc etc
    }
Run Code Online (Sandbox Code Playgroud)

c# wpf dispatcher

6
推荐指数
1
解决办法
2万
查看次数

你如何将这个循环转化为数学

我正试图解决看似简单的数学问题.我可以将问题写成for循环,但我不确定如何将其转换为等式.有人可以帮忙吗?

x = 10;
for(int i=0; i<3000; i++)
{
    x = x^2
}
Run Code Online (Sandbox Code Playgroud)

math

5
推荐指数
3
解决办法
4962
查看次数

listview.selectionchanged,我每次点击一个项目都能点火吗?

有没有办法在每次单击列表视图中的选择时触发selectionchanged事件,而不是仅在它更改时?

例如,假设我有一个只包含一个对象的列表视图.用户单击该对象,该对象包含填充下面某些文本框的信息.用户开始更改这些文本框中的某些值(未绑定到对象).然后他们决定他们不想要那些文本框中的内容,因此他们想要将所有内容重置为listview中对象中的内容.但是当他们单击列表视图中的一个对象时,没有任何反应,因为选择没有改变.

希望有道理.有谁知道我怎么能解决这个问题?

c# wpf listview selectionchanged

4
推荐指数
1
解决办法
1万
查看次数

如何更改WPF进度条上的颜色

我有一个WPF,vista样式进度条,我想更改画笔.我已经将前景画笔设置为另一种颜色,但是有一种嗖嗖的动画效果,其颜色仍然是默认的绿色.我怎么能改变这个?

c# wpf progress-bar

4
推荐指数
1
解决办法
1万
查看次数

如何将wpf treeview与不同类型的嵌套对象一起使用

我有两个课,我想在树视图中显示.

在我的主窗口中,我有一个可观察的某种类型对象的集合,称之为对象a.对象a包含另一种对象的可观察集合,对象b.每个对象b包含一个可观察的对象b集合.

例如,我可能有一些看起来像这样的东西

ListOfObjectA的

-ObjectA1

--ListOfObjectB的

---对象B

---- ListOfObjectB的

-----对象B

-ObjectA2

--ListOfObjectB的

---对象B

我的xaml应该将树视图绑定到类似的东西?

对不起,如果我没有解释好这个,我是wpf的新手.

c# wpf treeview

3
推荐指数
1
解决办法
5864
查看次数

C#,WPF,在没有backgroundworkers的情况下更新gui

我有一个程序需要10-20秒才能启动.我需要在程序启动时显示一个带有进度条的窗口.我知道BackgroundWorker是正确的方法,但我很遗憾没有时间使用线程重做整个gui.这是我正在尝试的一些代码,但它不起作用.谁能帮忙..?

using System;
using System.Threading;
using System.Windows;

namespace WpfApplication1
{
    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();

            Thread t = new Thread(ShowLoadingWindow);
            t.SetApartmentState(ApartmentState.STA);
            t.Priority = ThreadPriority.Highest;
            t.Start();

            DoSomeLongTask();
            keepLooping = false;
        }

        bool keepLooping = true;
        private void ShowLoadingWindow()
        {
            LoadingWindow lw = new LoadingWindow();
            lw.Show();

            while (keepLooping)
            {
                Thread.Sleep(1);
            }

            lw.Close();
        }

        private void DoSomeLongTask()
        {
            for (int i = 0; i < 20000; i++)
            {
                GC.Collect();
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

加载窗口只是一个带有进度条的裸窗口.这怎么行不通?

c# wpf

2
推荐指数
2
解决办法
4689
查看次数