使用具有不同任务或操作的多个BackGroundWorker

时间:2018-10-06 10:43:04

标签: c# winforms c#-4.0

作为.NET开发人员,我一直在使用3个C#Windows应用程序(数据库更新,爬网数据以及下载Excel文件以导入数据库)。我已经分别创建了这3个项目,这3个应用程序在后台运行,并且仅在桌面上显示每个通知。

我的问题:

  • 如何在单个应用程序上运行这三个应用程序?
  • 如何在后台运行我的第二个应用程序?我关闭并重新启动系统或笔记本电脑后如何启动?
  • 我的第3个应用程序下载并导入。一旦我开始,下载和导入过程是每周或每月一次,因此我有一个日期选择器选择今天的日期(2018年6月10日星期六)和星期选项。关闭并重新启动系统后如何继续?
  • 如何在我关闭或重新启动应用程序后在停止的地方继续操作?
  • 这3个应用程序正在Internet上运行。只有互联网可用时,如何暂停和运行?
  • 如何在Web应用程序上显示Windows窗体应用程序通知?

1 个答案:

答案 0 :(得分:0)

  • 首先:是的,可以在一个进程(应用程序)中的3个独立线程上执行此操作。 More here
  • 第二:简单地Start application on startup,我将在我的应用程序代码中实现以查看是否还有一个正在运行的应用程序实例,如果是,我将关闭该实例。
  • 第三:将下一个下载日期存储在某些数据库或txt文件中。在应用程序启动时检查<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="16dp" android:paddingLeft="16dp" android:paddingRight="16dp" android:paddingTop="16dp" tools:context=".Body1"> <ScrollView android:layout_width="match_parent" android:layout_height="wrap_content"> <com.ms.square.android.expandabletextview.ExpandableTextView android:id="@+id/expandable_text_view" android:layout_width="match_parent" android:layout_height="wrap_content" app:maxCollapsedLines="1" app:animDuration="200" > <TextView android:id="@+id/expandable_text" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_marginTop="16dp" android:textColor="#666" android:textSize="16sp" android:layout_width="match_parent" android:layout_height="wrap_content" /> <ImageButton android:id="@+id/expand_collapse" android:layout_gravity="right|bottom" android:background="@android:color/transparent" android:padding="16dp" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </com.ms.square.android.expandabletextview.ExpandableTextView> <com.ms.square.android.expandabletextview.ExpandableTextView android:id="@+id/expandable_text_view2" android:layout_width="match_parent" android:layout_height="wrap_content" app:maxCollapsedLines="1" app:animDuration="200" > <TextView android:id="@+id/expandable_text2" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_marginTop="16dp" android:textColor="#666" android:textSize="16sp" android:layout_width="match_parent" android:layout_height="wrap_content" /> <ImageButton android:id="@+id/expand_collapse_two" android:layout_gravity="right|bottom" android:background="@android:color/transparent" android:padding="16dp" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </com.ms.square.android.expandabletextview.ExpandableTextView> </ScrollView> </LinearLayout> ,如果是,请更新所需内容并更新import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import com.ms.square.android.expandabletextview.ExpandableTextView; public class Body1 extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_body1); ExpandableTextView expandableTextView1 = (ExpandableTextView) findViewById(R.id.expandable_text_view); expandableTextView1.setText(getString(R.string.text1)); ExpandableTextView expandableTextView2 = (ExpandableTextView) findViewById(R.id.expandable_text_view2); expandableTextView2.setText(getString(R.string.text2)); } } 。这样,如果您关闭计算机(应用程序)并再次启动计算机(自动运行应用程序),它将检查它是否应该被更新,如果已经更新,则可以完成工作
  • 第四名:范围太广。每次在应用程序运行中进行一次或多次检查时,尝试使用Google搜索或考虑将数据存储在database / txt / xmal中的方式,从已停止的文件中进行检查
  • 将其搜索。没那么难。 “如何检查计算机是否可以访问互联网”。
  • 范围太广。想想你自己。

由于这个问题范围太广,应该关闭,因此我没有回答的项目很少,但是由于我是新手,所以我为您提供了一些建议。