Merhaba, Programı aşağıdaki gibi yaptım. Ancak tek sorun Grafikte X ekseni zamanı hep sıfırda kalıyor. Hiçbir şekilde değişmiyor. Bende anlık zamanı göstermek istiyorum. bunu nasıl yapabilirim. Yardımlarınızı rica ederim.
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Threading;
using System.Windows.Forms.DataVisualization.Charting;
namespace Ders1
{
public partial class frm1 : Form
{
int[] pet1Array = new int[60];
int thick;
public int pet1PerfCounter { get; set; }
public frm1()
{
InitializeComponent();
}
System.Timers.Timer Charttimer = new System.Timers.Timer();
private void Form1_Load(object sender, EventArgs e)
{
Thread th = new Thread(new ThreadStart(this.pet1ChartValues));
th.IsBackground = true;
this.pet1Chart.ChartAreas[0].AxisX.IntervalType = DateTimeIntervalType.Minutes;
this.pet1Chart.Series[0].XValueType = ChartValueType.DateTime;
this.pet1Chart.ChartAreas[0].AxisX.LabelStyle.Format = "HH:mm:ss";
this.pet1Chart.Series[0].IsXValueIndexed = true;
th.Start();
}
private void btnBasla_Click(object sender, EventArgs e)
{
}
private void pet1ChartValues()
{
while (true)
{
pet1Array[pet1Array.Length - 1] = this.pet1PerfCounter;
Array.Copy(pet1Array, 1, pet1Array, 0, pet1Array.Length - 1);
if (pet1Chart.IsHandleCreated)
{
this.Invoke((MethodInvoker)delegate { UpdatePet1Chart(); });
this.Invoke((MethodInvoker)delegate { UpdatePet1ChartValue(); });
}
else
{
//.....
}
Thread.Sleep(1000);
}
}
private void UpdatePet1Chart()
{
pet1Chart.Series["PET1"].Points.Clear();
for (int i = 0; i < pet1Array.Length-1; i++)
{
pet1Chart.Series["PET1"].Points.AddY(pet1Array);
}
}
private void UpdatePet1ChartValue()
{
double tick;
pet1Chart.Series["PET1"].Points.Clear();
for (int i = 0; i < pet1Array.Length - 1; i++)
{
pet1Chart.Series["PET1"].Points.AddXY(thick++,pet1Array);
}
this.Update();
}
private void btnUpdateData_Click(object sender, EventArgs e)
{
this.pet1PerfCounter = Int32.Parse(txtPet1Performance.Text);
}
private void btnClose_Click(object sender, EventArgs e)
{
this.Close();
}
private void pet1Chart_Click(object sender, EventArgs e)
{
}
private void timer1_Tick(object sender, EventArgs e)
{
}
}
}