Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  4 3161
Beklager om koden er noe urydding, slik er det nå.
While argumentet synes ikke å fungere som ønskelig?


Kode

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Threading;
using System.Threading;
namespace testformeg
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }
        private readonly DispatcherTimer _timer = new DispatcherTimer();
        public bool pa;
        public string ja;
        public int i;
        private bool _digitalOutputTest;




        private void Button_Click(object sender, RoutedEventArgs e)
        {


            _digitalOutputTest = !_digitalOutputTest;
            if (_digitalOutputTest)
            {
                Thread thread = new Thread(K8055DigitalOutputTest);
                thread.Start();
            }
            




        }

        private void K8055DigitalOutputTest()
        {
            while (_digitalOutputTest)
            {
                for (int i = 1; i < 255; i++)
                {
                    Dispatcher.BeginInvoke(new Action(delegate
                    {
                        labell.Content = i.ToString();
                  
                    }));
                    Thread.Sleep(10);
                    if (i==249)
                    { i = 0; }
                }

                
                Dispatcher.BeginInvoke(new Action(delegate
                {
                    labell.Content = ja; 
                }));
            }
        }









        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            _digitalOutputTest = false;

        }

      

        private void Window_Closed(object sender, EventArgs e)
        {
            _digitalOutputTest = false;
            Application.Current.Shutdown();
           
        }
    }
}
Sist endret av Jegermannen; 29. januar 2020 kl. 16:33.
All the way up
mulig jeg tar feil da jeg ikke har driver noe særlig med C, men setter du noen gang _digitalOutputTest = True? ser kun den blir satt false. Den while loopen din er avhengig av at variabelen er true.
Er det en vellerman k8055 du leker med? hadde en sånn for 10 år siden
Åja, har jeg kanskje tenkt baklengs jeg da?
Yes, det er det - ganske morsomt, men er lenge siden sist.

Nja, eller ja - jeg mener for å stoppe den og da er while-loopen gående så lenge den er true, problemet er at den ikke stopper på false?
Sist endret av Jegermannen; 29. januar 2020 kl. 16:56. Grunn: Automatisk sammenslåing med etterfølgende innlegg.
Du setter i tilbake til 0, så den for loopen kommer aldri noensinne til å fullføre.

Derfor blir aldri while check kjørt mer enn 1 gang.
Jepp, jeg så det nettopp selv.
Hele if ==250 er unødvendig.
Tar jeg bort den fungerer det hele.