Из того, что было сказано в комментариях, у меня может быть решение для вас.
Сначала убедитесь, что вы звоните Job()
из основного потока пользовательского интерфейса. Например, непосредственно в обработчике событий объекта пользовательского интерфейса или при вызове метода Invoke()
объекта пользовательского интерфейса.
Тогда я бы изменил ваш код следующим образом:
private static void Notify(string url, string author, string mess)
{
using(Toast slice = new Toast(100000, url, author, mess) { Height = 90 })
{
slice.ShowDialog();
}
}
public void Job()
{
Notify("http://google.com", "username", "hi all");
}
Обратите внимание, что я полностью удаляю цикл и использую ShowDialog()
, чтобы предотвратить дальнейшее взаимодействие с программой, пока окно slice
не будет закрыто.
Я также поместил slice
в блок using()
, потому что он должен вызывать Dispose()
, когда вы закончите с ним.