错误 - 类型' System.InvalidOperationException'的异常发生...调用线程无法访问此对象

时间:2017-10-20 13:52:34

标签: c#

我有以下代码,其中我有一个TextBox用户用来输入文件名。我想要发生的是,当用户键入文件名时,搜索不会发生,直到他/她停止/暂停键入,类似于在Windows资源管理器,Outlook等中搜索的方式。

使用下面的代码,我收到以下错误...

用户代码未处理InvalidOperationException

  

类型' System.InvalidOperationException'的例外情况发生在   WindowsBase.dll但未在用户代码中处理

     

其他信息:调用线程无法访问此对象   因为另一个线程拥有它。

错误指向var fName = inputFileName.Text;方法中的第findFile()行。

知道可能出现什么问题吗?

CODE:

namespace FileFinder
{
    public partial class MainWindow : Window
    {
        Timer timer = new Timer();

        public MainWindow()
        {
            InitializeComponent();

            timer.Elapsed += new ElapsedEventHandler(TimerEvent);
            timer.Interval = 1000;
            timer.Enabled = true;
            timer.Stop();
        }
        private void inputFileName_TextChanged(object sender, TextChangedEventArgs e)
        {
            timer.Stop();
            timer.Start();
        }

        public void TimerEvent(object source, ElapsedEventArgs e)
        {
            timer.Stop();
            findFile();
        }

        private void findFile()
        {
            var fType = ".pdf";
            var fName = inputFileName.Text; // error points to this line
            var fileName = fName.Trim() + fType;

            var file = Directory.GetFiles(@"C:\SomeFolder\", fileName, SearchOption.AllDirectories).FirstOrDefault();
            if (file == null) {
                myButton.Background = Brushes.Red;
            }
            else {
                myButton.Background = Brushes.Green;
            }
        }
    }
}

0 个答案:

没有答案