В UNIX, я думаю, вам, в основном, нужно его разветвить, если вы хотите, чтобы порожденный процесс запускался независимо от порождающего: например, если вы не хотите, чтобы ваш порожденный процесс завершался при выходе из процесса порождения.
Вот страница , которая объясняет все тонкие различия между Fork, System, Exec.
Если вы работаете с Win, Mac и Linux, я могу порекомендовать вам Qt Framework и его объект QProcess , но я не знаю, подходит ли вам этот вариант. Большим преимуществом является то, что вы сможете скомпилировать один и тот же код для Windows Linux и Mac:
QString program = "./yourspawnedprogram";
QProcess * spawnedProcess = new QProcess(parent);
spawnedProcess->start(program);
// or spawnedProcess->startDetached(program);
И, кроме того, вы можете даже убить дочерний процесс из материнского процесса и поддерживать связь с это через поток.
Версия Visual Basic:
Dim tb As New TextBlock
Dim b As New Bold
b.Inlines.Add(New Run("bold text"))
tb.Inlines.Add(b)
tb.Inlines.Add(New Run("random non bold text"))
Версия C #:
TextBlock tb = new TextBlock();
var bold = new Bold(new Run("Bold Text"));
tb.Inlines.Add(bold);
var normal = new Run("Normal Text"));
tb.Inlines.Add(normal);
Я думаю, вам нужно использовать MDC.Set
для установки дополнительных значений контекста. Посмотрите Совет № 4 в этом блоге .
XAML
<TextBlock Name="textBlock1" TextWrapping="Wrap">
<Bold>TextBlock</Bold> is designed to be <Italic>lightweight</Italic>,
and is geared specifically at integrating <Italic>small</Italic> portions
of flow content into a UI.
</TextBlock>
<Button Width="100" Margin="10">Click Me</Button>
<TextBlock Name="textBlock2"
TextWrapping="Wrap" Background="AntiqueWhite" TextAlignment="Center"
>
By default, a TextBlock provides no UI beyond simply displaying its contents.
</TextBlock>
<Button Width="100" Margin="10">Click Me</Button>
C #
TextBlock textBlock1 = new TextBlock();
TextBlock textBlock2 = new TextBlock();
textBlock1.TextWrapping = textBlock2.TextWrapping = TextWrapping.Wrap;
textBlock2.Background = Brushes.AntiqueWhite;
textBlock2.TextAlignment = TextAlignment.Center;
textBlock1.Inlines.Add(new Bold(new Run("TextBlock")));
textBlock1.Inlines.Add(new Run(" is designed to be "));
textBlock1.Inlines.Add(new Italic(new Run("lightweight")));
textBlock1.Inlines.Add(new Run(", and is geared specifically at integrating "));
textBlock1.Inlines.Add(new Italic(new Run("small")));
textBlock1.Inlines.Add(new Run(" portions of flow content into a UI."));
textBlock2.Text =
"By default, a TextBlock provides no UI beyond simply displaying its contents.";