//데이터의 전체 또는 일부 수신시 호출

            client.DownloadProgressChanged += (obj, ev) =>

            {

                lock(locksum)

                {

                    avgsample.Add(ev.BytesReceived);

                }

            };


이게 데이터 받은 크기를 리스트에 밀어넣고


        async void SpeedCheck()

        {

            while(true)

            {

                lock(locksum)

                {

                    long sum = 0;

                    avgsample.ForEach(x => sum += x);

                    avgsample.Clear();

                    string st = sum > 1000 ? sum / 1000 + "KB" : sum + "바이트";

                    TaskManager.ControlInvoke(label2, () => label2.Text = st);

                }

                await Task.Delay(1000);

            }

        }


이쪽은 1초마다 리스트 빼서 합구함.