FileSystemEventHandler
이 있는데 onchange
은 내 파일에서 데이터를 읽었으므로 이제 처리기로 작업하면서이 데이터를 반환해야합니다. 이제 내 코드는 작동하지만 아무 것도 반환하지 않으므로 프런트 엔드에 업데이트 된 데이터가 없습니다. 이것이 내 질문입니다. data
을 어떻게 돌려 보낼 수 있습니까?FileSystemWatcher Onchage 반환 값
감사
public static string data = null;
[PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
public static string Run()
{
try
{
// Create a new FileSystemWatcher and set its properties.
FileSystemWatcher watcher = new FileSystemWatcher();
//watcher.Path = System.IO.Directory.GetCurrentDirectory();
watcher.Path = Path.Combine(HttpRuntime.AppDomainAppPath, "view");
/* Watch for changes in LastAccess and LastWrite times, and
the renaming of files or directories. */
watcher.NotifyFilter = NotifyFilters.LastWrite
| NotifyFilters.FileName | NotifyFilters.DirectoryName;
watcher.Filter = "info.txt";
// Add event handlers.
watcher.Changed += new FileSystemEventHandler(OnChanged);
// Begin watching.
watcher.EnableRaisingEvents = true;
}
catch (Exception ex)
{
Console.Write(ex.ToString());
}
return data;
}
private static void OnChanged(object source, FileSystemEventArgs e)
{
data = FileManager.Read();
}
'OnChanged()'가 발생할 때까지'Run()'을 차단하겠습니까? – CodeCaster
'OnChanged' 이벤트가 발생하여'data'를 설정하기 오래 전에 run 메소드가 data == null로 리턴됩니다. – ChrisF
'Run()'을 막을 필요가 없다면, ui를 업데이트하기 위해 데이터를 리턴한다고 기대하면 안됩니다. 'OnChanged()'또는 직접 OnChanged()에서 호출해야하는 다른 메소드에서 사용자의 ui를 업데이트해야합니다. 그러면 사용자가 데이터를 읽을 것입니다. – IamNguele