在多线程操作界面控件的时候,需要用Invoke 或 BeginInvoke,但是有时候会出现"在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke",分析可能的原因是代码执行速度过快,在执行完"InitializeComponent()"之前就执行到了其他代码对界面进行了一些操作导致这个错误,现在发现一个巧妙的解决办法,就是在Invoke 或 BeginInvoke方然之前添加下面代码:

IntPtr i = this.Handle;

     代码就是在执行Invoke 或 BeginInvoke之前先获取句柄,如果获取不到,则下面的代码不会执行,实测可以解决问题!

    最近在github上面发现大佬写了个Linux VPS一键安装桌面及远程桌面的脚本,就用服务器试了一下,感觉还可以,所以拿来分享下。
    GitHubdi地址:

https://github.com/MeowLove/Linux-Remote-Desktop-Environment

    程序对性能要求比较高,内存和CPU占用比较大:

CPU core ≥ 1, Memory ≥ 1GB, Disk space ≥ 15GB.

    安装脚本:

#下载脚本
wget --no-check-certificate -qO ~/Linux-Remote-Desktop-Environment.sh 'https://raw.githubusercontent.com/freehao123/Linux-Remote-Desktop-Environment/master/Download/Common/Load/Linux-Remote-Desktop-Environment.sh' && chmod a+x ~/Linux-Remote-Desktop-Environment.sh
#CentOS 7+安装
bash ~/Linux-Remote-Desktop-Environment.sh -CentOS
#Debian 9+安装
bash ~/Linux-Remote-Desktop-Environment.sh -Debian
#Ubuntu 18.04+安装
bash ~/Linux-Remote-Desktop-Environment.sh -Ubuntu

    安装完成后,会显示创建的登录名和密码,然后就可以用RDP连接了,这里我用的是Windows自带的远程桌面程序:
TIM截图20200731105255.jpg

挂载Samba共享文件夹

1、安装cifs支持

Centos、RedHat
yum -y update
yum -y install cifs-utils
Ubuntu、Debian
sudo apt update&&sudo apt upgrade
sudo apt -y install cifs-utils

2、挂载

mount -t cifs -o username="administrator",password="password" //ip/共享文件夹名字 /挂载点

设置开机自动挂载

nano /etc/fstab
//ip/共享文件夹名字 /挂载点 cifs username=administrator,password=password 0 0 

以下是rclone的一些简单命令,用于服务器rclone挂载的云盘之间的数据迁移:

rclone copy src des        复制
rclone move src des        移动,如果要在移动后删除空源目录,加上 --delete-empty-src-dirs 参数
rclone sync src des        同步:将源目录同步到目标目录,只更改目标目录
rclone size        查看网盘文件占用大小
rclone delete        删除路径下的文件内容
rclone purge        删除路径及其所有文件内容
rclone mkdir        创建目录
rclone rmdir        删除目录
rclone rmdirs        删除指定环境下的空目录。如果加上 --leave-root 参数,则不会删除根目录
rclone check src des        检查源和目的地址数据是否匹配
rclone ls        列出指定路径下的所有的文件以及文件大小和路径
rclone lsl        比上面多一个显示上传时间
rclone lsd        列出指定路径下的目录
rclone lsf        列出指定路径下的目录和文件