-5

私はいくつかのCPUスケジューリングアルゴリズムを実装しました。それをWindowsフォームアプリケーションのC#でグラフィカルに表示したいのですが、方法がわかりません。
例:
次のプロセスがあります。

p1,p2,p3,p4,p5,p6,p7,p8,p9,...  

p2はp1の前にプロセスを実行し、p1はp6の前に、p6はp3の前に
...独自のプロセス時間に基づいており、プロセスの開始時間と終了時間も表示します。 どうすればそのようなものを作ることができますか? ありがとう。



4

1 に答える 1

0

WPF を使用することをお勧めします。これはさまざまな方法で実現できます。

1 つの例は、複数の列を持つ WPF グリッドです。列の幅を比率として設定できます。たとえば、「3*」の幅は、「6*」の幅の半分の時間かかるプロセスを示します。

<Window x:Class="WpfApplication3.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525">
<Grid Name="MainGrid" Height="80">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="1*"></ColumnDefinition>
        <ColumnDefinition Width="2*"></ColumnDefinition>
        <ColumnDefinition Width="4*"></ColumnDefinition>
    </Grid.ColumnDefinitions>
    <Rectangle Fill="LightBlue"/>
    <Rectangle Grid.Column="1" Fill="LightGreen"/>
    <Rectangle Grid.Column="2" Fill="LightPink"/>
    <Label HorizontalAlignment="Center" VerticalAlignment="Center">P2</Label>
    <Label Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center">P1</Label>
    <Label Grid.Column="2" HorizontalAlignment="Center" VerticalAlignment="Center">P6</Label>
</Grid>
</Window>

この XAML コードはこれを生成します。

http://img835.imageshack.us/img835/4742/picturelx.png

このように、C# コード ビハインドを使用してプログラムで列を追加できます。

 private void AddColumn()
    {
        //Create the columndefinition with a width of "3*"
        ColumnDefinition column = new ColumnDefinition();
        column.Width = new GridLength(3, GridUnitType.Star);

        //Add the column to the grid
        MainGrid.ColumnDefinitions.Add(column);

        //Create the rectangle
        Rectangle rect = new Rectangle();
        rect.Fill = new SolidColorBrush(Colors.Beige);
        MainGrid.Children.Add(rect);
        Grid.SetColumn(rect, 3);

        //Create the label
        Label label = new Label();
        label.VerticalAlignment = System.Windows.VerticalAlignment.Center;
        label.HorizontalAlignment = System.Windows.HorizontalAlignment.Center;
        label.Content = "P4";
        MainGrid.Children.Add(label);
        Grid.SetColumn(label, 3);

    }
于 2012-05-24T12:21:31.373 に答える