关于BackgroundWorker多线程同步问题

定义了一组 List bgws = new List();其中每一个bgws[i]的DoWork事件做的工作都是一样的,但是有两个参数随每个bgws[i]不同而不同,所以就如下分别写了很多DoWork0、DoWork1.。。。之类的来进行同步处理,有没有更简洁的办法,可以同时调用进行使用?
private void btnCopy_Click(object sender, EventArgs e)
{
for (int i = 0; i < srctable.Count; i++)
{
BackgroundWorker bgw = new BackgroundWorker();
bgws.Add(bgw);
bgws[i].WorkerReportsProgress = true;
bgws[i].WorkerSupportsCancellation = true;
//bgws[i].DoWork += new DoWorkEventHandler(DoWork);
//bgws[i].ProgressChanged += new ProgressChangedEventHandler(UpdateProgress);
//bgws[i].RunWorkerCompleted += new RunWorkerCompletedEventHandler(CompletedWork);
}
string[,] tName = new string[srctable.Count, 2];
//List tName = new List();
for (int i = 0; i < srctable.Count; i++)
{
tName[i, 0] = srctable[i];
tName[i, 1] = destable[i];

        }

        bgws[0].DoWork += new DoWorkEventHandler(DoWork0);
        bgws[0].ProgressChanged += new ProgressChangedEventHandler(UpdateProgress0);
        bgws[0].RunWorkerCompleted += new RunWorkerCompletedEventHandler(CompletedWork0);

        bgws[1].DoWork += new DoWorkEventHandler(DoWork1);
        bgws[1].ProgressChanged += new ProgressChangedEventHandler(UpdateProgress1);
        bgws[1].RunWorkerCompleted += new RunWorkerCompletedEventHandler(CompletedWork1);

        bgws[2].DoWork += new DoWorkEventHandler(DoWork2);
        bgws[2].ProgressChanged += new ProgressChangedEventHandler(UpdateProgress2);
        bgws[2].RunWorkerCompleted += new RunWorkerCompletedEventHandler(CompletedWork2);

        bgws[3].DoWork += new DoWorkEventHandler(DoWork3);
        bgws[3].ProgressChanged += new ProgressChangedEventHandler(UpdateProgress3);
        bgws[3].RunWorkerCompleted += new RunWorkerCompletedEventHandler(CompletedWork3);


        bgws[0].RunWorkerAsync();
        bgws[1].RunWorkerAsync();
        bgws[2].RunWorkerAsync();
        bgws[3].RunWorkerAsync();         
    }
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
多线程同步数据且等多线程同时完成后再走主线程

用线程池管理,开10条线程去读取和更新几十万数据,但是主线程直接跑下去了,这个不能允许,但是线程池又不能用join来。自己建Thread join,这10条线程又是一条条运行,不合要求。应该如何做,谢谢

C#多线程读同一文件,写多个文件并更新进度条

代码的目的是启动3个task,通过调用C DLL中getSWMMout方法读取同一二级制文件中不同部分,写3个文件,NdeExtract和LinkExtract方法和SubExtract方法代码结构一致。 当多个checkBox都选中时,报错代码:托管调试助手 "FatalExecutionEngineError":“运行时遇到了错误。此错误的地址为 0x6cb8f121,在线程 0x3f58 上。错误代码为 0xc0000005。此错误可能是 CLR 中的 bug,或者是用户代码的不安全部分或不可验证部分中的 bug。此 bug 的常见来源包括用户对 COM-interop 或 PInvoke 的封送处理错误,这些错误可能会损坏堆栈。”。请问怎么解决呢?在博客园提过同样的问题,但回答不太明白,如果3个task顺序执行应该怎么修改呢? 代码如下: ``` // Extract subcatch output values if checked if (chkSub.IsChecked == true) { progressBar1.Value = 0; // define file path for subcatchment extraction string subcatchOutPath = "subcatch.txt"; // instaniate a task for extraction var subTask = SubExtract(subcatchOutPath); } // Extract node output values if checked if (chkNode.IsChecked == true) { progressBar2.Value = 0; // define file path for node extraction string nodeOutPath = "node.txt"; // instaniate a task for extraction var nodeTask = NodeExtract(nodeOutPath); } // Extract linke output values if checked if (chkLink.IsChecked == true) { progressBar3.Value = 0; // define file path for link extraction string linkOutPath = "link.txt"; // instaniate a task for extraction var linkTask = LinkExtract(linkOutPath); } async Task SubExtract(string outPathSub) // // Purpose: extract variable outcome for subcatchment // { int errSubID; int cntSub = 0; int sumSubPrd = Nsubcatch * extNperiod; // total for subcatchment outcome float subValue = 0F; // outcome value for subcatchment extraction // create file stream for writing file FileStream fsSubcatch = new FileStream(outPathSub, FileMode.Create); StreamWriter swSubcatch = new StreamWriter(fsSubcatch); await Task.Run(() => { for (int i = 0; i < Nsubcatch; ++i) { for (int j = 1; j <= extNperiod; ++j) { for (int k = 0; k < NsubcatchVar; ++k) { // getSWMMout为C DLL中方法 errSubcatch = getSWMMresult(SUBCATCH, i, k, j, ref subValue); } // update progressbar and textBlock value cntSub++; progressBar1.Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Normal, (Action)delegate () { progressBar1.Value = cntSub * 100 / sumSubPrd; }); } } // empty buffer swSubcatch.Flush(); // close stream swSubcatch.Close(); fsSubcatch.Close(); GC.Collect(); }); } ```

C#编写串口数据收发程序,收发频繁,求教多线程处理机制!

![![![![图片说明](https://img-ask.csdn.net/upload/201604/20/1461167601_434062.jpg)图片说明](https://img-ask.csdn.net/upload/201604/20/1461167592_877283.jpg)图片说明](https://img-ask.csdn.net/upload/201604/20/1461167576_770964.jpg)图片说明](https://img-ask.csdn.net/upload/201604/20/1461167565_101017.jpg)C#编写串口数据收发程序,点击界面按钮发送指令数据,等待接收返回的数据,此外还有周期性数据需要不断接收;接收到的数据要判断重复帧和是否是最后一帧,然后去掉帧头帧尾并显示在界面控件内;目前程序开了三个线程:接收、处理、发送,三个线程都是一直循环判断指针是否有更新,但这样导致界面切换太卡,请问该怎么处理这三个线程之间的关系才能使界面切换流畅呢,初学C#,如果能给出具体修改代码方法更佳,请大神帮帮忙啊~急!

为什么BackgroundWorker.dowork()可以操作界面控件?

# 我在主窗口上添加了一个System.Windows.Forms.Timer,定时器每次触发时会创建一个BackgroundWorker,并开始后台操作,在BackgroundWorker.dowork()事件处理程序代码里我引用了主窗口上的状态条标签,为什么没有报错可以执行? 我真是搞不明白啊,有劳懂的人给讲讲呢,真心先谢谢您了! “tssl航班查询状态”和“tsslOPC服务器状态”就是主窗口上的状态条标签 ``` private void timer1_Tick(object sender, EventArgs e) { timer1.Enabled = false; timer1.Interval = 60000; btn设置登机桥是否加入航班联动.Enabled = false; btn停止航班联动.Enabled = false; BackgroundWorker bw = new BackgroundWorker(); bw.DoWork += 向OPC服务器中写入命令; bw.RunWorkerCompleted += 后台写入完成; bw.RunWorkerAsync(); } private void 向OPC服务器中写入命令(object sender, DoWorkEventArgs e) { try { hbqlsjjh.查询航班全量数据(); if (登机桥是否航班联动 == true)//登机桥加入了航班联动 { if (tssl航班查询状态.Text == " 本次航班查询成功")//本次查询成功,根据航班信息写入 { for (int i = 0; i < 49; i++) { OPC.写登机桥航班控制点(i, Convert.ToString(登机桥根据航班是否开(i))); } } else if (tssl航班查询状态.Text == " 本次航班查询失败") //本次查询失败,打开所有登机桥的空调 { for (int i = 0; i < 49; i++) { OPC.写登机桥航班控制点(i, "1"); } } } } catch (Exception err) { tsslOPC服务器状态.Text = " 与OPC服务器交互失败:" + err.Message; } } ```

c#progessbar与backgroundworker

1、一个主窗口,上面放一个backgroundworker,这个backgroundworker运行的时候,有数据sum在变化。 2、一个frm_grb窗口,上面放一个progressbar。 3、我想在主窗口上点击一个按钮,然后弹出frm_grb窗口。progressbar的值随backgroundworker中sum值变化而发生变化。 怎么做谢谢。

BackgroundWorker 页面假死

大家好,我的程序要做的是这样的,这是一个主启动界面,页面启动后,后台去检查服务器上的版本。但是在进去这个主页面时,图片和文字都不显示(白屏),到最后才显示图片和文字,请教大家解决一下,我想要的效果,页面完全加载后(图片和文字都显示),再执行异步操作。 [图片说明](https://img-ask.csdn.net/upload/201512/24/1450953811_42919.jpg) public partial class frmStartProgress : Form { /// <summary> /// The configuration for the AppStart process. /// </summary> private static AppStartConfiguration config = null; /// <summary> /// The process of the running application. /// </summary> private static Process applicationProcess; BackgroundWorker worker = new BackgroundWorker(); public frmStartProgress() { InitializeComponent(); config = (AppStartConfiguration)System.Configuration.ConfigurationManager.GetSection("appStart"); label1.Text = string.Format("正在启动{0}系统,请稍候...", config.ApplicationName); ---------【****文字没有显示****】 } private void frmStartProgress_Load(object sender, EventArgs e) { //// Grab our config instance which we use to read app.config params, figure out //// WHERE our target app is and WHAT version worker.WorkerReportsProgress = true; worker.DoWork += new DoWorkEventHandler(worker_DoWork); worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(worker_RunWorkerCompleted); worker.ProgressChanged += new ProgressChangedEventHandler(worker_ProgressChanged); worker.RunWorkerAsync(); } void worker_ProgressChanged(object sender, ProgressChangedEventArgs e) { this.progressBar1.Value = e.ProgressPercentage; this.label1.Text = e.UserState.ToString(); } void worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { this.Close(); } void worker_DoWork(object sender, DoWorkEventArgs e) { StartAppProcess(); } public delegate void AutoUpdateDelegate(); private void ChangeThread(AutoUpdateDelegate aud) { if (this.InvokeRequired) { this.Invoke(aud); } } /// <summary> /// Main process code. /// </summary> private void StartAppProcess() { ClearUpdateVersionFiles(); worker.ReportProgress(20, "正在检查是否有新的版本..."); ----【**文字没有显示**】 bool processStarted = false; if (config.UpdateTime == UpdateTimeEnum.BeforeStart) { //UpdateApplication(); ChangeThread(UpdateApplication); } //Start the application try { worker.ReportProgress(50, "正在初始化应用程序"); ........【**文字开始显示,图片也显示**】

标题:子线程中更新Datagridview时不能实时刷新

用DataTable绑定了Datagridview,在线程中监听某消息发送方,当收到消息时,检查DataTable中是否已有对应的行,若有,更新某几个字段,若无,增加新行。以上操作都在线程中。目前发现当更新字段时,绑定的Datagridview的对应字段可以实时刷新,增加新行时,不能实时刷新,必须在画面上点击某处或者拖动下滚动条,才能让新行显示出来。请问这个问题该怎样解决? 补充:不想主动调用Datagridview.Refresh(),即使调用Datagridview.Refresh()后,纵滚动条也显示不正常

c#改变进程主窗口后,窗口上的timer,backgroundworker异常

原先program里的application.run是登录窗口,我现在改为主页面后,主页面上的timer控件设定的是1分钟执行1次,但是实际却1分钟执行3-5次,timer控件控制的backgroundworker也是,isbusy属性一直都是false,哪怕独立线程没结束,还是会运行。之前还好好的呢,为啥? 图片是main入口 ![图片说明](https://img-ask.csdn.net/upload/201506/09/1433815728_918004.png) 下面是主页面上的1个timer和对于的独立线程。 /// <summary> /// 数据质量监控 30,000 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void sjzljktimer_Tick(object sender, EventArgs e) { if (!SJZLJKbgw.IsBusy) { SJZLJKbgw.RunWorkerAsync(); } } private void SJZLJKbgw_DoWork(object sender, DoWorkEventArgs e) { functions.WDZLKZ(); }

backgroundworker 和progressbar使用中的好像有部份代碼不執行

如題,在button的Click事件中 bgwork.RunWorkerAsync(); bgwork.WorkerReportsProgress = true; progressBar1.Show(); IAsyncResult result = progressBar1.BeginInvoke(new Action(delegate { getdata() })); result.AsyncWaitHandle.WaitOne(); progressBar1.EndInvoke(result); 在執行的過程中好像在執行完bgwork的DOWORK事件處理程序之後就不在執行了compeleted事件也不觸發,調試中beginInvoke()的委託好像也不觸發了,大神們能說說爲什麽嗎? 現在我都是一頭霧水。

C# 窗体关闭后 进程也关闭了 但是线程还在运行 怎么办

Thread TheOpenPrint; TheOpenPrint = new Thread(new ThreadStart(OpenPrin)); TheOpenPrint.IsBackground = true; //申明的地方 private void CloseThread() { System.Environment.Exit(0);//退出全部线程 System.Diagnostics.Process.GetCurrentProcess().Kill(); } 进程关闭了 窗体也关了 但是线程还在跑 怎么办

如何从BackgroundWorker重定向到另一个活动?

<div class="post-text" itemprop="text"> <p>I have created a php page and a login page for verification but after login success it just pops up a login success message. I want my app to redirect to another activity after successfull login.how do i do it via backgroundworker</p> <pre><code>package com.project.v_app; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.net.URLEncoder; import android.app.AlertDialog; import android.content.Context; import android.os.AsyncTask; public class BackgroundWorker extends AsyncTask&lt;String, Void, String&gt; { Context context; AlertDialog alertDialog; BackgroundWorker (Context ctx){ context = ctx; } @Override protected String doInBackground(String... params) { String type = params[0]; String login_url = "http://192.168.0.103/login.php"; if(type.equals("login")) { try { String user_name = params[1]; String password = params[2]; URL url = new URL(login_url); HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection(); httpURLConnection.setRequestMethod("POST"); httpURLConnection.setDoOutput(true); httpURLConnection.setDoInput(true); OutputStream outputStream = httpURLConnection.getOutputStream(); BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8")); String post_data = URLEncoder.encode("user_name","UTF-8")+"="+URLEncoder.encode(user_name,"UTF-8")+"&amp;" +URLEncoder.encode("password","UTF-8")+"="+URLEncoder.encode(password,"UTF-8"); bufferedWriter.write(post_data); bufferedWriter.flush(); bufferedWriter.close(); outputStream.close(); InputStream inputStream = httpURLConnection.getInputStream(); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream,"iso-8859-1")); String result=""; String line=""; while((line = bufferedReader.readLine())!=null) { result +=line; } bufferedReader.close(); inputStream.close(); httpURLConnection.disconnect(); return result; } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return null; } @Override protected void onPreExecute() { alertDialog = new AlertDialog.Builder(context).create(); alertDialog.setTitle("Login Status"); } @Override protected void onPostExecute(String result) { alertDialog.setMessage(result); alertDialog.show(); } @Override protected void onProgressUpdate(Void... values) { // TODO Auto-generated method stub super.onProgressUpdate(values); } } </code></pre> </div>

c#主窗口里timer控件设定的是1分钟执行1次,为什么每分钟内会执行多次

我在主窗口中添加了几个timer和backgroundwork,一一对应,用timer去监控独立线程的执行。设定每个timer1分钟执行一次,为什么会被执行多次。代码如下: private void sjsxjk_Tick(object sender, EventArgs e) { if (!SJSXJKbgw.IsBusy) //每次此独立进程还没执行完,isbusy属性仍然是 false,这是为何? { SJSXJKbgw.RunWorkerAsync(); } } private void SJSXJKbgw_DoWork(object sender, DoWorkEventArgs e) { functions.timeMonitor(DateTime.Now.ToString("yyyy-MM-dd HH:00:00"), true, false, false); }

委托的一点疑惑。为何此处仍然报线程不安全的异常【图】

我对委托的理解是一个函数指针,将某个方法的指针交给一个委托,然后由委托根据指针找到创建方法的线程去安全的调用方法。 疑问1:异步委托是否新开线程了。 疑问2: 当用子线程更新主线程控件状态时考虑到线程安全性一般都这样做。 ``` 1 ***某线程的方法里*** 2 3 this.Invoke(New Action(()=>{ 4 lable1.Text="111"; 5 })); 6 7 ***某线程的方法里*** ``` 在winform里,按钮控件的点击事件是属于主线程的。所以效果都是同步的。因此当触发按钮的点击事件执行button1-click时并没有跨线程。所以更新控件直接赋值即可,不必用Invoke方式(按钮事件也是个委托,此处暂且不考虑委托对线程安全起到的作用,因为根本没跨线程)。 而在winform里,BackGroundWorker这个控件执行时就是跨线程的了,他会异步的执行操作,在操作完成时触发RunWorkerCompleted事件。使用时只要注册RunWorkerCompleted事件,在这个事件触发我的方法时直接给控件赋值即可,也不必用Invoke考虑线程安全性。这里我有点疑惑。之所以不必用Invoke,是否就是RunWorkerCompleted这个事件(也是个委托),以线程安全的方式调用的我的方法,所以不必在我的方法里用Invoke。 如果是,那为什么我自定义的这个情况就出错了。 ![图片说明](https://img-ask.csdn.net/upload/201504/14/1429001510_781721.png)

Winform下载工具自动运行功能报错

![图片说明](https://img-ask.csdn.net/upload/201708/09/1502261888_887175.png) 点击自动运行后报错:System.InvalidOperationException: 此 BackgroundWorker 当前正忙,无法同时运行多个任务。 但是后台又能继续运行下载文件,求教大佬们这是为什么怎么解决,我是个新人不太懂多线程...

C# winform 执行主程序 页面假死 假死,进度条无法显示

现有一个程序,winform。在主页面中有一个button,button触发调用外部一个bat file bat file执行完会将结果反馈到主页面的UI上。我希望在bat 运行期间,有一个进度条显示。 但是由于我button中调用的bat file是用process 调用的。所以UI假死,导致进度条无法加载。 Process process = new Process(); process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; process.StartInfo.CreateNoWindow = true; process.StartInfo.FileName = strbatPath.ToString(); process.Start(); process.WaitForExit(); string returnValue = process.ExitCode.ToString(); if (process.HasExited) { //MessageBox.Show(process.ExitCode.ToString()); if (returnValue.Equals("0")) { process.Close(); //this.backgroundWorker1.CancelAsync(); this.TC1.Enabled = true; ReadResult(); } else { } 在网上查了很多,都说用多线程操作。但是我不理解。于是产生了下面的疑问 1.除了process 调用bat, 还有thread来调用的方法吗?因为起了一个thread调用进度条,那么就必须有另外一个thread来调用bat,对吗? 2.能给出一个伪代码来实现我上述的要求吗?有点搞糊涂了

silverlight 子线程中打印

我现在用的技术是Silverlight,想用一个子线程去完成打印工作的同时,不影响UI的操作。 1、现在问题是,子线程打印的时候,UI还是会假死。 2、通过BackgroundWorker的方式,实例化PrintDocument printDoc = new PrintDocument();对象时,提示跨线程访问无效 想实现的效果是打印的同时,还可以操作UI。

Android登录不起作用

<div class="post-text" itemprop="text"> <p>I try to learn android programming on the internet but when I want to create a login system it just doesn't write "Succes". My php file:</p> <pre><code>&lt;?php $con = mysqli_connect("hostname", "username", "password", "database"); $email = $_POST['email']; $password = $_POST['password']; $query = mysqli_query($con, "SELECT id FROM users WHERE email like '$email' and password like '$password'"); if(mysqli_num_rows($query) &gt; 0){ echo "Success!"; } else { echo "Wrong e-mail or password!"; } mysqli_close($con); ?&gt; </code></pre> <p>and I also got 2 java class, the first is the MainActivity:</p> <pre><code>public class MainActivity extends AppCompatActivity { EditText email, password; //Button loginbtn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); email = (EditText) findViewById(R.id.editText2); password = (EditText) findViewById(R.id.editText3); } public void onLogin(View view){ String Email = email.getText().toString(); String Password = password.getText().toString(); String type = "login"; BackgroundWorker backgroundWorker = new BackgroundWorker(this); backgroundWorker.execute(Email, Password, type); } } </code></pre> <p>and the second is my backgroundWorker:</p> <pre><code>public class BackgroundWorker extends AsyncTask&lt;String,Void,String&gt; { Context context; AlertDialog alertDialog; BackgroundWorker (Context cdx){ context = cdx; } @Override protected String doInBackground(String... params){ String type = params[0]; String login_url = "http://diamondearth.16mb.com/android/login.php"; if(type.equals("login")){ try { String email = params[1]; String password = params[2]; URL url = new URL(login_url); HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection(); httpURLConnection.setRequestMethod("POST"); httpURLConnection.setDoOutput(true); httpURLConnection.setDoInput(true); OutputStream outputStream = httpURLConnection.getOutputStream(); BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8")); String post_data = URLEncoder.encode("email","UTF-8")+"="+URLEncoder.encode(email,"UTF-8")+"&amp;" +URLEncoder.encode("password","UTF-8")+"="+URLEncoder.encode(password,"UTF-8"); bufferedWriter.write(post_data); bufferedWriter.flush(); bufferedWriter.close(); outputStream.close(); InputStream inputStream = httpURLConnection.getInputStream(); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "iso-8859-1")); String result=""; String line=""; while((line = bufferedReader.readLine())!= null){ result += line; } bufferedReader.close(); inputStream.close(); httpURLConnection.disconnect(); } catch (MalformedURLException e){ e.printStackTrace(); } catch (IOException e){ e.printStackTrace(); } } return null; } @Override protected void onPreExecute(){ alertDialog = new AlertDialog.Builder(context).create(); alertDialog.setTitle("Login Status"); } @Override protected void onPostExecute(String result){ alertDialog.setMessage(result); alertDialog.show(); } } </code></pre> </div>

从Android应用程序登录MySQL数据库不成功

<div class="post-text" itemprop="text"> <p>I have created an android app that logins into a MySQL database but I don't receive any results. The 'result' variable in the alert dialog box in backgroundWorker.java (function "onPostExecute") returns null, can anyone solve this problem?</p> <p><strong>BackgroundWorker.java</strong>` public class BackgroundWorker extends </p> <pre><code> AsyncTask&lt;String,String,String&gt; { Context context; AlertDialog alertDialog; BackgroundWorker(Context ctx) { context =ctx; } @Override protected String doInBackground(String... params) { String type=params[0]; String login_url="192.168.10.9/login.php"; if(type.equals("login")) { try { String user_name = params[1]; String password = params[2]; URL url = new URL(login_url); HttpURLConnection httpURLConnection = (HttpURLConnection)url.openConnection(); httpURLConnection.setRequestMethod("POST"); httpURLConnection.setDoOutput(true); httpURLConnection.setDoInput(true); OutputStream outputStream = httpURLConnection.getOutputStream(); BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8")); String post_data = URLEncoder.encode("user_name","UTF-8")+"="+URLEncoder.encode(user_name,"UTF-8")+"&amp;" +URLEncoder.encode("password","UTF-8")+"="+URLEncoder.encode(password,"UTF-8"); bufferedWriter.write(post_data); bufferedWriter.flush(); bufferedWriter.close(); outputStream.close(); InputStream inputStream = httpURLConnection.getInputStream(); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream,"iso-8859-1")); String result=""; String line=""; while((line = bufferedReader.readLine())!= null) { result += line; } bufferedReader.close(); inputStream.close(); httpURLConnection.disconnect(); return result; } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } return null; } @Override protected void onPreExecute() { alertDialog=new AlertDialog.Builder(context).create(); alertDialog.setTitle("Login Status"); } @Override protected void onPostExecute(String Result) { Log.i("ok", "Result " + Result); alertDialog.setMessage(Result); alertDialog.show(); } </code></pre> <p><strong>CheckConn.java</strong></p> <pre><code>public class CheckConn extends AppCompatActivity { EditText user; EditText pass; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.check_conn); user = (EditText) findViewById(R.id.et_u); pass = (EditText) findViewById(R.id.et_p); Button press = (Button) findViewById(R.id.btn_login); press.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { onLogin(); } }); } public void onLogin() { String username= user.getText().toString(); String password=pass.getText().toString(); String type="login"; BackgroundWorker backgroundWorker=new BackgroundWorker(this); backgroundWorker.execute(type,username,password); } </code></pre> <p>}</p> <p><strong>connection.php</strong></p> <pre><code>&lt;?php $mysql_usernmae="root"; $mysql_password="*****"; $db="map"; $db= new mysqli('localhost',$mysql_usernmae,$mysql_password,$db); ?&gt; </code></pre> <p><strong>login.php</strong></p> <pre><code>&lt;?php require "connection.php"; $user_name=$_POST["user_name"]; $user_pass=$_POST["password"]; $mysql_qry="select * from user_info where user_name like '$user_name' and user_password like 'user_pass';"; $result=mysqli_query($db,$mysql_qry); if (mysqli_num_rows($result) &gt; 0) { echo "login Successsss"; } else { echo "faileddddd Booooo"; } ?&gt; </code></pre> <p>`</p> </div>

gc.collect() 怎么用,和using有什么关系?用了using是不是就不用回收了?

gc.collect() 怎么用,和using有什么关系?用了using是不是就不用回收了?

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

Vue + Spring Boot 项目实战(十九):Web 项目优化解决方案

快来一起探索如何打脸我们的破项目,兄弟姐妹们把害怕打在公屏上!

你连存活到JDK8中著名的Bug都不知道,我怎么敢给你加薪

CopyOnWriteArrayList.java和ArrayList.java,这2个类的构造函数,注释中有一句话 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 public ArrayList(Collection&lt;? ...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

CSDN:因博主近期注重写专栏文章(已超过150篇),订阅博主专栏人数在突增,近期很有可能提高专栏价格(已订阅的不受影响),提前声明,敬请理解!

CSDN:因博主近期注重写专栏文章(已超过150篇),订阅博主专栏人数在突增,近期很有可能提高专栏价格(已订阅的不受影响),提前声明,敬请理解! 目录 博客声明 大数据了解博主粉丝 博主的粉丝群体画像 粉丝群体性别比例、年龄分布 粉丝群体学历分布、职业分布、行业分布 国内、国外粉丝群体地域分布 博主的近期访问每日增量、粉丝每日增量 博客声明 因近期博主写专栏的文章越来越多,也越来越精细,逐步优化文章。因此,最近一段时间,订阅博主专栏的人数增长也非常快,并且专栏价

一个HashMap跟面试官扯了半个小时

一个HashMap能跟面试官扯上半个小时 关注 安琪拉的博客 1.回复面试领取面试资料 2.回复书籍领取技术电子书 3.回复交流领取技术电子书 前言 HashMap应该算是Java后端工程师面试的必问题,因为其中的知识点太多,很适合用来考察面试者的Java基础。 开场 面试官: 你先自我介绍一下吧! 安琪拉: 我是安琪拉,草丛三婊之一,最强中单(钟馗不服)!哦,不对,串场了,我是**,目...

我说我不会算法,阿里把我挂了。

不说了,字节跳动也反手把我挂了。

记录下入职中软一个月(外包华为)

我在年前从上一家公司离职,没想到过年期间疫情爆发,我也被困在家里,在家呆着的日子让人很焦躁,于是我疯狂的投简历,看面试题,希望可以进大公司去看看。 我也有幸面试了我觉得还挺大的公司的(虽然不是bat之类的大厂,但是作为一名二本计算机专业刚毕业的大学生bat那些大厂我连投简历的勇气都没有),最后选择了中软,我知道这是一家外包公司,待遇各方面甚至不如我的上一家公司,但是对我而言这可是外包华为,能...

面试:第十六章:Java中级开发

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

培训班出来的人后来都怎么样了?(二)

接着上回说,培训班学习生涯结束了。后面每天就是无休止的背面试题,不是没有头脑的背,培训公司还是有方法的,现在回想当时背的面试题好像都用上了,也被问到了。回头找找面试题,当时都是打印下来天天看,天天背。 不理解呢也要背,面试造飞机,上班拧螺丝。班里的同学开始四处投简历面试了,很快就有面试成功的,刚开始一个,然后越来越多。不知道是什么原因,尝到胜利果实的童鞋,不满足于自己通过的公司,嫌薪水要少了,选择...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

工作八年,月薪60K,裸辞两个月,投简历投到怀疑人生!

近日,有网友在某职场社交平台吐槽,自己裸辞两个月了,但是找工作却让自己的心态都要崩溃了,全部无果,不是已查看无回音,就是已查看不符合。 “工作八年,两年一跳,裸辞两个月了,之前月薪60K,最近找工作找的心态崩了!所有招聘工具都用了,全部无果,不是已查看无回音,就是已查看不符合。进头条,滴滴之类的大厂很难吗???!!!投简历投的开始怀疑人生了!希望 可以收到大厂offer” 先来看看网...

大牛都会用的IDEA调试技巧!!!

导读 前天面试了一个985高校的实习生,问了他平时用什么开发工具,他想也没想的说IDEA,于是我抛砖引玉的问了一下IDEA的调试用过吧,你说说怎么设置断点...

都前后端分离了,咱就别做页面跳转了!统统 JSON 交互

文章目录1. 无状态登录1.1 什么是有状态1.2 什么是无状态1.3 如何实现无状态1.4 各自优缺点2. 登录交互2.1 前后端分离的数据交互2.2 登录成功2.3 登录失败3. 未认证处理方案4. 注销登录 这是本系列的第四篇,有小伙伴找不到之前文章,松哥给大家列一个索引出来: 挖一个大坑,Spring Security 开搞! 松哥手把手带你入门 Spring Security,别再问密...

97年世界黑客编程大赛冠军作品(大小仅为16KB),惊艳世界的编程巨作

这是世界编程大赛第一名作品(97年Mekka ’97 4K Intro比赛)汇编语言所写。 整个文件只有4095个字节, 大小仅仅为16KB! 不仅实现了3D动画的效果!还有一段震撼人心的背景音乐!!! 内容无法以言语形容,实在太强大! 下面是代码,具体操作看最后! @echo off more +1 %~s0|debug e100 33 f6 bf 0 20 b5 10 f3 a5...

程序员是做全栈工程师好?还是专注一个领域好?

昨天,有位大一的同学私信我,说他要做全栈工程师。 我一听,这不害了孩子么,必须制止啊。 谁知,讲到最后,更确定了他做全栈程序员的梦想。 但凡做全栈工程师的,要么很惨,要么很牛! 但凡很牛的,绝不是一开始就是做全栈的! 全栈工程师听起来好听,但绝没有你想象的那么简单。 今天听我来给你唠,记得帮我点赞哦。 一、全栈工程师的职责 如果你学习编程的目的只是玩玩,那随意,想怎么学怎么学。...

不要再到处使用 === 了

我们知道现在的开发人员都使用 === 来代替 ==,为什么呢?我在网上看到的大多数教程都认为,要预测 JavaScript 强制转换是如何工作这太复杂了,因此建议总是使用===。这些都...

什么是a站、b站、c站、d站、e站、f站、g站、h站、i站、j站、k站、l站、m站、n站?00后的世界我不懂!

A站 AcFun弹幕视频网,简称“A站”,成立于2007年6月,取意于Anime Comic Fun,是中国大陆第一家弹幕视频网站。A站以视频为载体,逐步发展出基于原生内容二次创作的完整生态,拥有高质量互动弹幕,是中国弹幕文化的发源地;拥有大量超粘性的用户群体,产生输出了金坷垃、鬼畜全明星、我的滑板鞋、小苹果等大量网络流行文化,也是中国二次元文化的发源地。 B站 全称“哔哩哔哩(bilibili...

十个摸鱼,哦,不对,是炫酷(可以玩一整天)的网站!!!

文章目录前言正文**1、Kaspersky Cyberthreat real-time map****2、Finding Home****3、Silk – Interactive Generative Art****4、Liquid Particles 3D****5、WINDOWS93****6、Staggering Beauty****7、Ostagram图片生成器网址****8、全历史网址*...

终于,月薪过5万了!

来看几个问题想不想月薪超过5万?想不想进入公司架构组?想不想成为项目组的负责人?想不想成为spring的高手,超越99%的对手?那么本文内容是你必须要掌握的。本文主要详解bean的生命...

用了这个 IDE 插件,5分钟解决前后端联调!

点击上方蓝色“程序猿DD”,选择“设为星标”回复“资源”获取独家整理的学习资料!作者 |李海庆我是一个 Web 开发前端工程师,受到疫情影响,今天是我在家办公的第78天。开发了两周,...

大厂的 404 页面都长啥样?最后一个笑了...

每天浏览各大网站,难免会碰到404页面啊。你注意过404页面么?猿妹搜罗来了下面这些知名网站的404页面,以供大家欣赏,看看哪个网站更有创意: 正在上传…重新上传取消 腾讯 正在上传…重新上传取消 网易 淘宝 百度 新浪微博 正在上传…重新上传取消 新浪 京东 优酷 腾讯视频 搜...

自从喜欢上了B站这12个UP主,我越来越觉得自己是个废柴了!

不怕告诉你,我自从喜欢上了这12个UP主,哔哩哔哩成为了我手机上最耗电的软件,几乎每天都会看,可是吧,看的越多,我就越觉得自己是个废柴,唉,老天不公啊,不信你看看…… 间接性踌躇满志,持续性混吃等死,都是因为你们……但是,自己的学习力在慢慢变强,这是不容忽视的,推荐给你们! 都说B站是个宝,可是有人不会挖啊,没事,今天咱挖好的送你一箩筐,首先啊,我在B站上最喜欢看这个家伙的视频了,为啥 ,咱撇...

代码注释如此沙雕,会玩还是你们程序员!

某站后端代码被“开源”,同时刷遍全网的,还有代码里的那些神注释。 我们这才知道,原来程序员个个都是段子手;这么多年来,我们也走过了他们的无数套路… 首先,产品经理,是永远永远吐槽不完的!网友的评论也非常扎心,说看这些代码就像在阅读程序员的日记,每一页都写满了对产品经理的恨。 然后,也要发出直击灵魂的质问:你是尊贵的付费大会员吗? 这不禁让人想起之前某音乐app的穷逼Vip,果然,穷逼在哪里都是...

Java14 新特性解读

Java14 已于 2020 年 3 月 17 号发布,官方特性解读在这里:https://openjdk.java.net/projects/jdk/14/以下是个人对于特性的中文式...

前端还能这么玩?(女朋友生日,用前端写了一个好玩的送给了她,高兴坏了)

前端还能这么玩?(女朋友生日,用前端写了一个好玩的送给了她,高兴坏了)

爬虫(101)爬点重口味的

小弟最近在学校无聊的很哪,浏览网页突然看到一张图片,都快流鼻血。。。然后小弟冥思苦想,得干一点有趣的事情python 爬虫库安装https://s.taobao.com/api?_ks...

工作两年简历写成这样,谁要你呀!

作者:小傅哥 博客:https://bugstack.cn 沉淀、分享、成长,让自己和他人都能有所收获! 一、前言 最近有伙伴问小傅哥,我的简历怎么投递了都没有反应,心里慌的很呀。 工作两年了目前的公司没有什么大项目,整天的维护别人的代码,有坑也不让重构,都烦死了。荒废我一身技能无处施展,投递的简历也没人看。我是不动物园里的猩猩,狒狒了! 我要加班,我要996,我要疯狂编码,求给我个机会… ...

相关热词 c#跨线程停止timer c#批量写入sql数据库 c# 自动安装浏览器 c#语言基础考试题 c# 偏移量打印是什么 c# 绘制曲线图 c#框体中的退出函数 c# 按钮透明背景 c# idl 混编出错 c#在位置0处没有任何行
立即提问