↓このような処理があった時にbutton1を押して無限ループのタスクを実行した後に
button2のクリックイベントからtaskを止める方法ってありますでしょうか?どなたか教えてください

Task task;
private async void button1_Click(object sender, EventArgs e)
{
task = doTask();
}
private async Task doTask()
{
await Task.Run(() =>
{
while (true)
{
// 無限ループ
}
}
}
private async void button2_Click(object sender, EventArgs e)
{
// ここでtaskを止めたい
}