コード例 #1
0
        private void FileReadDone(IAsyncResult result)
        {
            UpdateProgress("File read done");
            FileStream inputStream = result.AsyncState as FileStream;

            if (inputStream != null)
            {
                inputStream.Close();
            }

            // Начинаем асинхронный подсчет слов

            TokenCounter counter = new TokenCounter(Encoding.ASCII.GetString(_buffer));

            counter.BeginCount(CountDone, counter);
            UpdateProgress("Counting tokens");

            // Если мы хотим ждать завершения операции, нужно вызвать : counter.EndCount(counterResult);
        }
コード例 #2
0
        private void CountDone(IAsyncResult result)
        {
            UpdateProgress("Count done");
            TokenCounter counter = result.AsyncState as TokenCounter;

            listViewTokens.Invoke(new MethodInvoker(() =>
            {
                listViewTokens.BeginUpdate();
                if (counter != null)
                {
                    foreach (WordCount count in counter.WordCounts)
                    {
                        ListViewItem item = new ListViewItem(count.Word);
                        item.SubItems.Add(count.Count.ToString("N0"));
                        listViewTokens.Items.Add(item);
                    }
                }
                listViewTokens.EndUpdate();
            }));
        }