問題があります。私はデータベースからデータを取り出し、このデータをtxtファイルに生成するアプリケーションを持っています。最初に私はこのデータをtxtファイルに生成するためのボタンを作成しますが、今私はこのアプリケーションをtxtファイルに生成する必要があります。例えば、5分ごとに、ボタンなしで前のファイルを上書きします。ここに私のコードは次のとおりです。5分ごとにtxtファイルを生成するC#wpf
public partial class MainWindow : Window
{
private static Timer aTimer;
private List<tw__Towar> someData;
public MainWindow()
{
InitializeComponent();
}
private void Generate()
{
string path = @"c:\some path";
var createFile = someData.Select(k => $"{k.tw_Id}\t" + $"{k.column}\t" + $"{k.column2}\t" + $"{k.column3}\t"
);
File.WriteAllLines(path, createFile);
Process.Start(path);
System.Timers.Timer aTimer = new System.Timers.Timer();
aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
aTimer.Interval = some time;
aTimer.Enabled = true;
}
private void OnTimedEvent(object sender, ElapsedEventArgs e)
{
Generate();
Console.WriteLine("It works");
}
private void LoadData()
{
DataClasses1DataContext cd = new DataClasses1DataContext();
someData = (from p in cd.datavbase where p.column != null && p.column != ""
select p).ToList();
GT1.ItemsSource = someData;
}
private void Button_Click(object sender, RoutedEventArgs e)
{
LoadData();
}
//private void Button_Click_1(object sender, RoutedEventArgs e)
//{
// Generate();
//}
}
問題は何ですか?あなたの質問を更新してください。 –
問題が機能していないアプリケーションが作成したパスにtxtファイルを生成しない – manhart
タイマーをどこで開始しているのかわかりません...あなたの問題です。 'Generate'メソッドの中でタイマーを初期化すべきではありません。なぜなら、タイマーだけを再起動すべきだからです。 – Ben