Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > .NET Framework > Forum > ขอคำแนะนำ เรื่องการแสดงข้อมูล การโหลดข้อมูลหน่อยครับ



 

ขอคำแนะนำ เรื่องการแสดงข้อมูล การโหลดข้อมูลหน่อยครับ

 



Topic : 131113



โพสกระทู้ ( 13 )
บทความ ( 0 )



สถานะออฟไลน์




ผมขอสอบถามเรื่องการโหลดข้อมูลมาแสดงหน่อยครับ

ปัญหาของผมคือ เวลาเรากดปุ่มค้นหาแล้วค้าง
ผมอยากได้วิธีการแก้ไข แสดง popup ให้ทราบว่าระบบทำงานอยู่ไม่ได้ค้าง พอทำงานเสร็จ ก้ให้ popup นั้นหายไป

ผมได้ลองใช้ backgroundWorker ตามตัวอย่างที่หาได้
Code (C#)
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            var bw = sender as BackgroundWorker;
            var i = 0;
            while (i < 100 && !bw.CancellationPending)
            {
                bw.ReportProgress(i);
                Thread.Sleep(100);
                i++;
            }
        }

ผลลัพธ์ที่ได้คือ ต้องตั้งเวลาเอาเองอยู่ดี ถ้าข้อมูลไหนที่เยอะแล้วประมวณผลนานก้จะเกินเวลาที่กำหนด popup นั้นก้หายไปก่อนที่ระบบจะประมวณผลเสร็จ

ขอคำชี้แนะด้วยครับ
ขอบคุณครับ



Tag : .NET, Ms SQL Server 2016, Win (Windows App), LINQ, C#









ประวัติการแก้ไข
2018-05-22 15:28:11
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2018-05-22 14:58:51 By : ap.wachira View : 1176 Reply : 9
 

 

No. 1



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

ลองใช้ตัวนี้ดูนะครับ

Code (C#)
 public partial class frmWaitFormDialog : Form
    {
        public Action Worker { get; set; }
        public frmWaitFormDialog(Action worker)
        {
            InitializeComponent();
            if (worker == null) throw new ArgumentNullException();
            this.CenterToScreen();
            Worker = worker;
        }
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);
            Task.Factory.StartNew(Worker).ContinueWith(t => { this.Close(); }, TaskScheduler.FromCurrentSynchronizationContext());
        }

 /// <summary>
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;

        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Windows Form Designer generated code

        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmWaitFormDialog));
            this.pictureBox1 = new System.Windows.Forms.PictureBox();
            ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
            this.SuspendLayout();
            // 
            // pictureBox1
            // 
            this.pictureBox1.Dock = System.Windows.Forms.DockStyle.Fill;
            this.pictureBox1.Image = global::DATA_CSharp.Properties.Resources.wait9;
            this.pictureBox1.Location = new System.Drawing.Point(0, 0);
            this.pictureBox1.Name = "pictureBox1";
            this.pictureBox1.Size = new System.Drawing.Size(423, 201);
            this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
            this.pictureBox1.TabIndex = 0;
            this.pictureBox1.TabStop = false;
            // 
            // frmWaitFormDialog
            // 
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.BackColor = System.Drawing.Color.White;
            this.ClientSize = new System.Drawing.Size(423, 201);
            this.ControlBox = false;
            this.Controls.Add(this.pictureBox1);
            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
            this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
            this.Name = "frmWaitFormDialog";
            this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
            this.Text = "WaitFormDialog";
            ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
            this.ResumeLayout(false);

        }

        #endregion

        private System.Windows.Forms.PictureBox pictureBox1;

    }


อาจจะ Error ตรง
Code (C#)
this.pictureBox1.Image = global::DATA_CSharp.Properties.Resources.wait9;


ค้นหารูปมาใส่เอานะครับ(อยากได้แบบไหนก็ว่ากันไป)
วิธีใช้ ประมาณนี้ครับ

Code (C#)
 using (Class.frmWaitFormDialog f = new DATA_CSharp.Class.frmWaitFormDialog(new Action(() =>
             {
    
            var bw = sender as BackgroundWorker;
            var i = 0;
            while (i < 100 && !bw.CancellationPending)
            {
                bw.ReportProgress(i);
                Thread.Sleep(100);
                i++;
            }


           }));
             })))
             {
                 f.ShowDialog(this); //ตัว this จะมีหรือไม่มีก็ขึ้นกับความสะดวกของเราเอง ครับ
             }







แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-05-22 15:44:20 By : lamaka.tor
 


 

No. 2



โพสกระทู้ ( 13 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 1 เขียนโดย : lamaka.tor เมื่อวันที่ 2018-05-22 15:44:20
รายละเอียดของการตอบ ::
ขอดูตัวอย่างได้ไหมครับ


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-05-22 16:36:16 By : ap.wachira
 

 

No. 3



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 2 เขียนโดย : ap.wachira เมื่อวันที่ 2018-05-22 16:36:16
รายละเอียดของการตอบ ::
0

พอทำงานเสร็จ

1


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-05-22 17:18:56 By : lamaka.tor
 


 

No. 4



โพสกระทู้ ( 13 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 3 เขียนโดย : lamaka.tor เมื่อวันที่ 2018-05-22 17:18:56
รายละเอียดของการตอบ ::
หมายถึงโค้ตการเรียกใช้งานครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-05-23 15:53:57 By : ap.wachira
 


 

No. 5



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 4 เขียนโดย : ap.wachira เมื่อวันที่ 2018-05-23 15:53:57
รายละเอียดของการตอบ ::
No. 1 เลยครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-05-23 15:56:59 By : lamaka.tor
 


 

No. 6



โพสกระทู้ ( 13 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 5 เขียนโดย : lamaka.tor เมื่อวันที่ 2018-05-23 15:56:59
รายละเอียดของการตอบ ::
ผมติดตรงเรียกใช้นี้แหละครับ

Code (C#)
using (Class.frmWaitFormDialog f = new DATA_CSharp.Class.frmWaitFormDialog(new Action(() =>
            {
   
           var bw = sender as BackgroundWorker;
           var i = 0;
           while (i < 100 && !bw.CancellationPending)
           {
               bw.ReportProgress(i);
               Thread.Sleep(100);
               i++;
           }


          }));
            })))
            {
                f.ShowDialog(this); //ตัว this จะมีหรือไม่มีก็ขึ้นกับความสะดวกของเราเอง ครับ
            }


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-05-24 09:12:54 By : ap.wachira
 


 

No. 7



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 6 เขียนโดย : ap.wachira เมื่อวันที่ 2018-05-24 09:12:54
รายละเอียดของการตอบ ::
Error ว่าอะไรครับ
ลองเอาออกจาก backgroundWorker ดูครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-05-24 10:28:19 By : lamaka.tor
 


 

No. 8



โพสกระทู้ ( 47 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 1 เขียนโดย : lamaka.tor เมื่อวันที่ 2018-05-22 15:44:20
รายละเอียดของการตอบ ::
มี แบบเป็น vb บ้างไหมครับ อยากลองเอามาเล่นดูบ้างครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-05-24 22:02:11 By : 1354452254604116
 


 

No. 9



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

ตัวนี้ครับ

https://www.thaicreate.com/community/progressbar-dialog-backgroundworkger.html
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-05-24 23:38:26 By : lamaka.tor
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ขอคำแนะนำ เรื่องการแสดงข้อมูล การโหลดข้อมูลหน่อยครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 02
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่