ГЛАВНАЯ     АРХИВ     НАПИСАТЬ АДМИНУ     ПОДПИСАТЬСЯ НА RSS     ВОЙТИ      

Поиск

Категории

Облако тегов

acer ado.net amd asp.net c sharp c# cms css exceptions google html ipad iphone it бизнес javascript jquery linq microsoft mysql net nokia nokia lumia samsung seo silverlight sql surface tsql windows 8 windows blue windows phone windows rt xna безопасность библиотека вопросы на собеседовании интересные проекты интернет интернет магазин исключения книга книги компьютерная безопасность компьютерные игры контролы курсы по программированию логированние исключений мобильные приложения монетизация сайтов наушники новости новости it новости microsoft новости интернет новости технологий ноутбук ноутбуки обработка исключений оптимизация острова периферия планшет планшеты поддержка сайтов поисковое продвижение программы продвижение продвижение сайта продвижение сайтов рабство разработка игр разработка сайтов раскрутка сайта рекламные технологии смартфон смартфоны собеседование создание сайтов средства разработки туризм фриланс хостинг яндекс
  << Предыдущий пост       Следующий пост >>  
От: inbruk
10. декабря 2010 02:36

На самом деле здесь будет описан хак, который создает иллюзию синхронного запуска внутри программы. C точки зрения ОС запуск внешнего процесса асинхронный. В пространстве имен System.Diagnostics есть класс Process. Класс предоставляет доступ к локальным и удаленным процессам. Он позволяет запускать и останавливать процессы на локльной системе. Класс позволяет асинхронно запустить процесс на локальной системе указав имя (или имя и путь) к его exe файлу. Для этого служит статический метод Start(). Сохраним результат вызова Start() - объект класса Process в переменной (он еще пригодится). И сразу после запуска вызовем метод WaitForExit() у сохраненного объекта. Это позволит дождаться закрытия внешнего приложения, создав внутри нашего приложения иллюзию синхронного запуска. После того как объект класса Process станет не нужен, необходимо сразу же освободить ресурсы с ним связанные, для этого вызовем метод Close(). Следующий пример показывает, как это сделать на C#.


using System;
using System.Diagnostics;

namespace SystemSoundsTest
{
class Program
{
static void Main(string[] args)
{
Process currProc = Process.Start("notepad.exe");
Console.WriteLine("Process run asynchronously !");
Console.WriteLine("But we can wait until it stops !");

currProc.WaitForExit();
currProc.Close();

Console.WriteLine("Process was stopped from outside.");
Console.WriteLine("Press any key to stop this application ...");
Console.ReadKey(true);
}
}
}


Услуги косметологии в Москве

И еще одна занимательная программка, судоку для android выполнена весьма неплохо и позволяет пошевелить мозгами.

Похожие записи


Вопросы на собеседовании C#, Net, ASP.NET, SQL
Продолжая тему вопросов на собеседовании. Нашел еще одну подборку. Оригинал лежит здесь . Перенес, чтобы не затерялось. Есть вполне вменяемые ответы (хотя, на некоторые вопросы ответил бы по-другому). Ответы находятся после списка вопросов, я их не менял. 23. Что такое шаблон проектирования Model/View/Controller? Как и зачем его применяют? 2...

Как асинхронно запустить процесс из приложения под .Net ?
В пространстве имен System.Diagnostics есть класс Process. Класс предоставляет доступ к локальным и удаленным процессам. Он позволяет запускать и останавливать процессы на локльной системе. Класс позволяет асинхронно запустить процесс на локальной системе указав имя (или имя и путь) к его exe файлу. Для этого служит статический метод Start(). Следующий пример показыва...

Как получить список локальных процессов из приложения под .Net ?
В пространстве имен System.Diagnostics есть класс Process. Класс предоставляет доступ к локальным и удаленным процессам. Он позволяет запускать и останавливать процессы на локльной системе. Чтобы получить список с описаниями локальных процессов текущего компьютера, нужно вызвать статический метод GetProcesses() без параметров. Этот метод позволяет получить массив объе...

Комментарии

 
nobelwerfer 29.07.2011 19:08:25 #

открываются страшные тайны межпроцессной синхронизации

Добавить комментарий




biuquote
  • Комментарий
  • Предпросмотр
Loading


  Сохранить комментарий