onAppear
の中はコンパイラ的にはMainActorっぽい(viewModel2のメソッド呼び出しにawaitがいらないので)けど明示的に @MainActor
がついてないほうはコンテキストの引き継ぎが行われなくて、メインスレッド警告がでている?-warn-concurrency
ついてなかったから気づかなかったけどちゃんと警告でてた・・( Cannot use parameter 'self' with a non-sendable type 'ViewModel1' from concurrently-executed code
) Taskの中でawaitが起こるときにselfが明示的なactor contextを持っているかを確認してあればそのactor contextにスイッチするという感じなのかな