private async void TextBox_data_MouseDoubleClick(object sender, MouseButtonEventArgs e) { var fileName = MyLib.Open(); if (fileName == null) { return; } var encodingSelected = MessageBox.Show("\"Yes\" to use UTF-8\r\n\"No\" to use UTF-16 (Unicode)", "", MessageBoxButton.YesNo); if (encodingSelected == MessageBoxResult.None) { return; } Log.Assert(encodingSelected == MessageBoxResult.Yes || encodingSelected == MessageBoxResult.No); var encoding = encodingSelected == MessageBoxResult.Yes ? Encoding.UTF8 : Encoding.Unicode; int dataPreprocessMethodId = radioPanel_newData.SelectedIndex; bool debugMode = (bool)checkBox_debugMode.IsChecked; await stackPanel_tasksQueue.EnqueueTaskAsync($"Read Data {fileName} {encoding} {debugMode} {dataPreprocessMethodId}", new Func <Task>(async() => { mainData = await Task.Run(() => TextProcess.ReadTextStream(new FileStream(fileName, FileMode.Open, FileAccess.Read), encoding, debugMode)); await Task.Run(() => TextProcess.Process(ref mainData, dataPreprocessMethodId)); Log.Write(" OK"); })); }
void BuildData(Stream s, Encoding encoding, int dataPreprocessMethodId, int maxWordLength, bool debugMode) { Log.SubTask(() => { Log.AppendLog($"maxWordLength: {maxWordLength}"); int methodId = radioPanel_newData.SelectedIndex; Log.WriteLine($"Data preprocessing method: {dataPreprocessMethodId}"); string data = TextProcess.ReadTextStream(s, encoding, debugMode); Log.AppendLog($"Charactors Read = {data.Length}"); Log.WriteLine("Preprocessing Data..."); TextProcess.Process(ref data, dataPreprocessMethodId); OutputText = data.Length > 10000 ? data.Remove(10000) : data; long baseDataLength = data.Length; Log.AppendLog($"baseDataLength: {baseDataLength}"); Dispatcher.Invoke(() => inputField_data["baseDataLength"].Text = baseDataLength.ToString()); Log.WriteLine("TrieTabPage.BuildData..."); trie.Build(data, maxWordLength); Log.Write(" OK"); }); }