Когда я перемещаю другое окно поверх окна моего приложения, иногда визуальное содержимое моего окна перезаписывается содержимым другого окна.
Как этого избежать?
Поможет ли WinAPI или неуправляемый код?
Скорее всего, это происходит из-за того, что ваше приложение является однопоточным, и вы выполняете некоторое время, требующее значительных ресурсов процессора или операций ввода-вывода.
Рекомендованным маршрутом будет перемещение обработки в другой поток http://msdn.microsoft.com/en-us/library/ms951089
Хотя быстро и грязно можно «периодически» уступать, используя Application.DoEvents ()