【发布时间】:2010-02-15 11:08:13
【问题描述】:
我需要将一些 ListView 填充代码放在一个线程中。对于简单的情况,该线程不应运行两次。当我想发布一个新线程时,以前的线程需要停止,不管做什么。
编辑 1
场景如下。
我在 ListView 上方有一个文本过滤器。在 textchange 上,我调用 populateList() 方法。
问题是代码可能需要更长的时间,因为它在更大的数据库上使用 SQL LIKE 语法。
在此运行之前,用户不能输入任何内容。因此,当您输入“abc”时,会有大量的闲逛,您只需在 10 秒后输入“c”。
所以我想在线程中发出 populateList() 方法并允许用户快速输入更多内容。文本越长,SQL 查询的速度就越慢。 在“abc”情况下,如果您键入“a”,代码会落后并运行查询,但同时如果用户按下“b”,我想停止“a”线程的执行,并发出一个新线程,现在使用"ab"... 以 "c" 依此类推。
编辑 2
仍在寻找更多答案。
【问题讨论】:
标签: c# multithreading listview compact-framework